Konverter Format Tanggal Online
Konversi antara sintaksis format tanggal: strftime, Moment.js, ICU, Go, PHP, Java.
Reference table
| Element | strftime | Moment | ICU | Go |
|---|---|---|---|---|
| 4-digit year | %Y | YYYY | yyyy | 2006 |
| 2-digit year | %y | YY | yy | 06 |
| Month (01-12) | %m | MM | MM | 01 |
| Full month name | %B | MMMM | MMMM | January |
| Abbreviated month name | %b | MMM | MMM | Jan |
| Day of month (01-31) | %d | DD | dd | 02 |
| Day of month, no leading zero | %e | D | d | 2 |
| Hour 24h (00-23) | %H | HH | HH | 15 |
| Hour 12h (01-12) | %I | hh | hh | 03 |
| Minute (00-59) | %M | mm | mm | 04 |
| Second (00-59) | %S | ss | ss | 05 |
| AM/PM | %p | A | a | PM |
| Timezone abbreviation | %Z | z | zzz | MST |
| Timezone offset | %z | ZZ | Z | -0700 |
| Full weekday name | %A | dddd | EEEE | Monday |
| Abbreviated weekday name | %a | ddd | EEE | Mon |
| Day of year (001-366) | %j | DDDD | D | __2 |
Untuk apa alat ini
Konverter format tanggal untuk pengembang
Semua bahasa
Mendukung strftime, Moment.js, Day.js, ICU, Go, PHP, Java, .NET, Ruby.
100% privat
Konversi terjadi di browser Anda. Tidak ada data yang dikirim ke server mana pun.
Pratinjau nyata
Lihat bagaimana tanggal akan dirender dengan format Anda di setiap bahasa.
Instan
Konversi real-time saat Anda mengetik. Tanpa daftar, tanpa menunggu.
Cara kerjanya
Tiga langkah, tanpa kerumitan
Masukkan token format
Ketik format tanggal seperti %Y-%m-%d (strftime) atau YYYY-MM-DD (Moment.js). Alat ini mendeteksi dialek secara otomatis.
Konversi instan
Dapatkan format setara dalam semua dialek yang didukung: strftime, Moment.js, ICU, Go, PHP, Java, .NET.
Pratinjau dengan tanggal nyata
Lihat bagaimana tanggal saat ini akan terlihat dengan format tersebut di setiap bahasa.
FAQ
Ada pertanyaan?
strftime (string format time) adalah fungsi dari pustaka standar C yang didefinisikan dalam standar C89/ANSI C. Ia memformat struktur tm (waktu) sebagai string teks menggunakan token seperti %Y (tahun 4 digit), %m (bulan), %d (hari), %H (jam 24 jam), %M (menit), %S (detik). Ini adalah asal dari hampir semua sistem pemformatan tanggal: Python, Ruby, PHP (date() menggunakan token berbeda tetapi strftime() menggunakan yang sama), bash, dan banyak lagi.
Moment.js mempopulerkan notasi yang berbeda: YYYY (tahun 4 digit), MM (bulan), DD (hari), HH (jam 24 jam), mm (menit), ss (detik). Perbedaan utama: huruf besar/kecil penting (MM adalah bulan, mm adalah menit). Notasi ini diadopsi oleh Day.js, date-fns, Luxon, dan sebagian besar pustaka JavaScript modern. Proposal JavaScript Temporal (TC39) menggunakan notasi ICU.
ICU (International Components for Unicode) mendefinisikan standar CLDR untuk format tanggal. Ia menggunakan token seperti yyyy (tahun), MM (bulan), dd (hari), HH (jam). Ini adalah sistem yang digunakan di Java (java.time.format.DateTimeFormatter), Swift (DateFormatter), Kotlin, Android, dan proposal JavaScript Temporal. Keunggulan ICU adalah ia juga menangani lokalisasi: pola yang sama menghasilkan format berbeda dalam bahasa Inggris dan bahasa lainnya secara otomatis.
Go (Golang) menggunakan tanggal referensi tertentu sebagai template: 2 Januari 2006 pukul 15:04:05 pada hari Senin (yang sesuai dengan urutan mudah diingat). Alih-alih token abstrak, Anda mendeskripsikan format dengan menunjukkan bagaimana tanggal spesifik itu akan terlihat: 2006-01-02 untuk tahun-bulan-hari, 15:04:05 untuk waktu penuh. Pendekatan ini unik dan lebih intuitif menurut penciptanya, meskipun membingungkan pada awalnya.
Tanggal ISO 8601: strftime: %Y-%m-%d, Moment.js: YYYY-MM-DD, Go: 2006-01-02, Java: yyyy-MM-dd. Datetime lengkap: strftime: %Y-%m-%dT%H:%M:%S, Moment.js: YYYY-MM-DDTHH:mm:ss, Go: 2006-01-02T15:04:05, Java: yyyy-MM-dd'T'HH:mm:ss. Format Eropa: strftime: %d/%m/%Y, Moment.js: DD/MM/YYYY, Go: 02/01/2006, Java: dd/MM/yyyy.
Sejarah pemformatan tanggal dalam pemrograman, ISO 8601, pemformatan sadar lokal, penanganan zona waktu
Standarisasi format tanggal dalam komputasi secara historis bermasalah. Fungsi strftime diperkenalkan dalam pustaka standar C (ANSI C, 1989) tetapi akarnya kembali ke sistem AT&T Unix dari 1970-an. Sebelum standardisasi, setiap sistem dan bahasa menggunakan notasi mereka sendiri, menyebabkan ketidakcocokan serius. Standar ISO 8601 (edisi pertama 1988, direvisi 2004 dan 2019) menetapkan YYYY-MM-DD sebagai format universal untuk pertukaran data, diadopsi oleh XML, JSON, HTTP (untuk tanggal cookie dan header), dan sebagian besar API modern.
Lokalisasi tanggal menambahkan lapisan kompleksitas lain. Urutan hari/bulan/tahun bervariasi menurut negara: DD/MM/YYYY di Eropa dan Amerika Latin, MM/DD/YYYY di Amerika Serikat (menyebabkan kebingungan yang sering: 01/02/2026 adalah 1 Februari di Eropa tetapi 2 Januari di AS). Sistem ICU/CLDR menangani perbedaan ini secara otomatis: fungsi format yang sama menghasilkan output berbeda sesuai bahasa yang dipilih tanpa pengembang harus mengelola perbedaannya secara manual.
Zona waktu adalah bagian paling kompleks dari penanganan tanggal dalam perangkat lunak. IANA Time Zone Database (juga disebut Olson Database atau tzdata) memelihara catatan historis dan terkini dari semua zona waktu di dunia, termasuk perubahan DST (Daylight Saving Time) historis. Banyak bug perangkat lunak terkenal terkait tanggal: bug Y2K (tahun 2000), bug Tahun 2038 dalam sistem Unix 32-bit (di mana timestamp Unix akan meluap pada 19 Januari 2038), dan error DST yang memengaruhi kalender dan sistem pemesanan dua kali setahun.