Apakah ada format tanggal universal yang dapat dipahami oleh siapa pun di dunia?

10

Di Kanada, semua orang terbiasa dengan format tanggal YYYY-MM-DD. Di Eropa atau Afrika Selatan, mereka lebih suka DD-MM-YYYY. Ada pengguna dari Afrika Selatan yang bingung dengan YYYY-MM-DDformat tanggal. Apakah ada cara untuk menangani situasi ini?

Saya sedang berpikir untuk menggunakan format metode berikut untuk semua: Feb 02, 2011

Thierry Lam
sumber
21
Saya pikir format YYYY-MM-DD juga merupakan standar ISO.
FrustratedWithFormsDesigner
2
"Di Eropa atau Afrika Selatan, mereka lebih suka DD-MM-YYYY." Kecuali misalnya di Hongaria ( YYYY.MM.DD) atau Finlandia ( DD.MM.YYYY), atau ... Maaf, kenyataannya berantakan :-(
Péter Török
6
Bagaimana dengan berbagai kalender?
4
Ketika mengumpulkan data radar (di Amerika Utara), kami menggunakan ini untuk nama file: prefix_1999_12_23_16_45_53.ext. Alasan utama: ini sangat mudah untuk disortir, CARI dan parsing. Saat mencari, Anda benar-benar ingin memulai dengan unit yang paling penting terlebih dahulu untuk mencapai sasaran ASAP. String semacam ini bahkan bersahabat dengan pohon biner. Laboratorium itu didominasi oleh siswa dari Eropa, tetapi saya pikir ini hanya akal sehat, jika bukan standar ilmiah. Namun, di negara tempat saya tumbuh dewasa, kami akan menggunakan DD-MM-YYYY untuk penggunaan sehari-hari. Alasan: ketika Anda bangun, apa bagian pertama yang ingin Anda ketahui?
Pekerjaan
2
@Frustrated, saya kira maksudnya adalah bahwa ada kalender dengan tahun awal yang berbeda (bagaimana seorang muslim mengartikan misalnya 30.12.1268?), Atau bulan bulan (yang ada sekitar 13 per tahun) dll. Jadi, untuk benar - benar universal lebih dari sekadar menyetujui nomor mana yang merupakan hari dan mana yang merupakan bulan ...
Péter Török

Jawaban:

15

Bagian yang ambigu adalah untuk membedakan hari dari bulan jika mereka diwakili oleh angka.

Apakah 02/03 berarti 03 Februari atau 02 Maret?

Dengan mengubah pengidentifikasi bulan dari nomornya dengan namanya, Anda menghapus ambiguitas itu. Untuk menjawab pertanyaan Anda, varian Anda Feb 02, 2011sepertinya merupakan solusi yang baik.

Masih ada masalah potensial dengan nomor tahun jika Anda menulisnya hanya dengan 2 digit, tetapi kemudian mudah diperbaiki (gunakan 4).


sumber
10
Dan kemudian Anda bisa memiliki file terjemahan untuk nama bulan dalam berbagai bahasa.
FrustratedWithFormsDesigner
1
@FrustratedWithFormsDesigner Dan jangan lupa untuk mendapatkan terjemahan profesional untuk singkatan yang benar (terkenal) juga.
Nicole
Bagaimana dengan bahasa yang tidak repot menyebut bulan?
HANYA SAYA PENDAPAT benar
19

Tidak. Tidak ada format tanggal yang diakui secara universal.

ISO 8601 Menentukan standar internasional untuk format tanggal. Karena itu, ini mungkin kompromi terbaik. Tetapi seperti yang Anda katakan, pengguna tidak selalu menyukai format ini.

Satu-satunya solusi yang tepat adalah menyajikan format yang berbeda untuk negara yang berbeda. Anda mungkin menemukan bahwa ada perpustakaan standar untuk mencapai hal ini jika bahasa pemrograman pilihan Anda memiliki pengikut yang signifikan.

Kramii
sumber
2
Ini bagus. Saya biasanya menggunakan YYYYMMDD untuk file log, dll. Sekarang saya dapat mengatakan bahwa saya hanya memenuhi persyaratan ISO-8601!
Mark Harrison
1
Ketika menggunakan ISO 8601 saya biasanya menemukan yang terbaik untuk memformat seluruh kejujuran hal yaitu 1999-12-25T00: 00: 00.000Z . Ya itu seperti omong kosong bagi orang kebanyakan tetapi tidak ada kemungkinan ambiguitas.
MattDavey
2
"Satu-satunya solusi yang tepat adalah menyajikan format berbeda untuk negara yang berbeda." - dan bagaimana, tepatnya, saya harus mencetak tanggal pada slip kemasan yang bisa dikirim ke mana saja di dunia?
Scott Whitlock
@ScottWhitlock: Sayangnya, tidak ada solusi yang diterima secara universal untuk masalah ini. Jika Anda tidak tahu ke mana paket dikirim saat Anda mencetak tanggal, maka ISO 8601 mungkin merupakan taruhan terbaik Anda.
Kramii
"Satu-satunya solusi yang tepat adalah menyajikan format yang berbeda untuk negara yang berbeda." Saya akan mengatakan ini tidak benar. Kebetulan hari ini bahwa beberapa perpustakaan membantu gagasan tentang format tanggal pilihan saya, -berdasarkan pada bahasa pilihan saya, -kaca kebingungan. Tetapi sebagai langkah pertama karena kami tidak dapat memperbaiki semua budaya sekarang, baik menggunakan ISO 8601 atau teks selama berbulan-bulan atau sesuatu.
Erik I
9

Anda harus menggunakan info budaya untuk itu. Atau setidaknya format tampilan lokal.

Dalam JavaScript, Anda bisa menggunakan metode toLocaleString untuk kelas Date .

Untuk C # Anda dapat menggunakan string format saat menggunakan ToString .

Pencarian Google cepat harus menunjukkan kepada Anda bagaimana menggunakan budaya dalam bahasa pilihan Anda.

Tyanna
sumber
5

Saya akan menggunakan YYYY-MM-DD (dan selalu menuliskan tahun dan digit empat digit bulan dan hari). YYYY-DD-MM, setahu saya, jarang terjadi, jadi format YYYY-MM-DD adalah yang paling tidak ambigu, dan pada akhirnya pengguna Anda akan mengerti. Juga, Anda mendapatkan keuntungan menyortir sepele.

jprete
sumber
2

Dapatkah Anda memberikan masing-masing pengguna lokalnya sendiri, yang kemudian memberikan tanggal dan informasi lainnya sesuai dengan preferensi lokal mereka?


sumber
1

Sering kali Anda dapat mengonfigurasi lokal dan menggunakan I18n di sebagian besar kerangka kerja.

chiurox
sumber
0

Anda akan, dalam kasus umum, perlu menentukan format dan nilainya. Ini adalah satu-satunya cara untuk menghindari kebingungan. Misalnya, Anda dapat mengatakan "2011-02-02 (YYYY-MM-DD)". Itu datang dengan mengorbankan kesederhanaan dan keterbacaan, jadi kenal audiens Anda.

Anda dapat, tentu saja, mengatakan "Selanjutnya, semua tanggal dalam format YYYY-MM-DD ...." Kemudian "2011-02-02" yang muncul nanti akan menjadi tidak ambigu. Itu bisa lebih enak, tetapi sekali lagi, kenali audiens Anda.

yfeldblum
sumber
Benar, kecuali bahwa pada hari Estonia = päev dan bulan = kuu, di Filippino mereka adalah: araw dan buwan, dalam bahasa Finlandia: päivä, kuukausi, dalam bahasa Hongaria: nap, hónap, dalam bahasa Indonesia: hari, bulan, di Malteese: jum, xahar , dalam bahasa Rumania: zi, lună, dalam bahasa Turki: gün, ay, dalam bahasa Vietnam: ngày, tháng ... belum lagi banyak bahasa di mana salah satu bulan tidak dimulai dengan m atau hari tidak dimulai dengan d (Jerman: Monat, Tag ) serta bahasa yang tidak menggunakan apa pun seperti alfabet Latin.
Pekerjaan
1
Yah, "2011-02-02" tidak berarti dalam hal apa pun ...;)
Martin
0

Saran ini mungkin tidak berguna, tetapi saya telah melihat bulan ditulis sebagai angka romawi. Tentu, 3 / XI / 2011 mungkin 11 November atau 3 Maret, tapi saya kira interpretasi pertama lebih alami.

ggambett
sumber
1
Angka Romawi? "Alam?"
Wonko the Sane
@ Wonko, "alami" dalam arti bahwa dalam konteks itu XI lebih cenderung ditafsirkan sebagai bulan daripada sebagai hari. Saya akui itu sangat subyektif.
ggambett
+1, saya memikirkan sesuatu seperti ini sendiri. namun, saya juga setuju dengan kritik Anda.
Pekerjaan
Karena belum pernah melihat format itu, saya pertama-tama berpikir "kesalahan ketik" atau "kesalahan terjemahan" sebelum saya sadar "angka Romawi." Baru setelah itu saya mencoba menebak maknanya.
Wonko the Sane
Belum lagi bahwa 3 / II / 2011 akan ditafsirkan sebagai November.
MSalters
0

Saya akan mengatakan bahwa itu tergantung pada apa yang Anda lakukan, berapa banyak kendali yang Anda miliki atas input, dan apakah Anda menyimpannya di suatu tempat?

Untuk penyimpanan, saya akan menggunakan apa yang disarankan oleh Mike Dunlavey:

YYYYMMDDHHMMSS di mana jamnya di UTC adalah cara saya pergi setiap kali saya punya pilihan, untuk alasan yang Anda berikan. Ketika saya tidak punya pilihan, saya membiarkan pengguna memilih.

Dia tidak meninggalkan ini sebagai jawaban, jadi saya akan melakukannya.

Satu hal lagi: lihat cuplikan layar berikut tentang cara memasukkan tanggal kedaluwarsa CC: http://www.ubercart.org/files/credit_card_checkout.jpg

Hal yang hebat tentang contoh ini adalah tidak membuat Anda berpikir. Ia menggunakan angka dan nama untuk bulan itu. Saya akan mempertimbangkan menggunakan sesuatu yang serupa untuk input. Untuk bulan itu, sertakan nomor dan nama yang dilokalkan. Untuk tahun dan hari, gunakan angka Atas / Bawah atau kotak kombo. Kemudian, kontrol kalender juga tampak bagus.

Seperti yang saya katakan, itu tergantung. Untuk penyimpanan: jika menggunakan database, periksa apakah sudah menyediakan format data yang jelas dan baik. Jika menggunakan beberapa metode lain, lihat apakah "YYYYMMDDHHMMSS di mana jam berada di UTC" membantu. Untuk menyajikannya kepada pengguna - pertimbangkan negara / lokal apa yang mungkin terlibat, kemudian pilih jenis perwakilan yang paling mudah, "Jangan buat saya berpikir". Juga pertimbangkan untuk memberikan opsi.

Akhirnya, periksa beberapa produk keren yang sudah melakukan hal serupa, dan cobalah mencari tahu bagaimana mereka melakukannya.

Pekerjaan
sumber
ah sial, ketika membaca tangkapan layar saya pikir kita berbicara tentang 11 November ... hanya untuk menyadari hari itu tidak perlu ketika berbicara tentang tanggal kedaluwarsa Kartu Kredit: /
Matthieu M.
@ Matthieu M., ya, itu agak menyesatkan :) Namun, jika Anda memegang CC di tangan Anda dan akan melakukan entri data, maka mungkin itu membantu lebih daripada itu menyakitkan. Jika ada tiga kotak - satu untuk hari itu, maka ini mungkin kurang ambigu.
Pekerjaan
0

Tidak ada format tanggal dan waktu universal untuk pengguna akhir situs web. Juga tidak ada nilai waktu tanggal tunggal karena nilainya berbeda per zona waktu klien. Anda harus menggunakan globalisasi - penargetannya untuk data, waktu, mata uang, kalender, format nubmer berdasarkan budaya pengguna (dapat diterima dari bahasa yang diterima yang dilewatkan dari browser pengguna atau dengan sakelar yang diterapkan langsung di aplikasi Anda). Beberapa API (misalnya. NET) memiliki dukungan langsung dari fitur ini.

Untuk menyimpan tanggal dan waktu dalam databse gunakan format universal - UTC (koordinat waktu universal).

Ladislav Mrnka
sumber
UTC tidak
se
-2

Sangat disayangkan bahwa semua intelijen di dunia komputasi internasional tidak dapat memecahkan masalah ini.

Bukan Microsoft atau vendor lain yang mempertimbangkan untuk menambahkan topeng tanggal yang akan membuat Bulan tampak kosong, seperti Hari, tetapi sebagai tiga digit. Adopsi praktik akan membantu mempromosikan serangkaian format tanggal yang dimodifikasi yang setara secara matematis sambil tetap mudah diidentifikasi dan dibedakan dalam tata letak tanggal tradisional mana pun. Itu adalah:

  • 0MM-DD-YYYY, mis. 002-03-2016 untuk 03 Februari 2016

  • DD-0MM-YYYY, mis. 03-002-2016 untuk 03-Feb-2016

  • YYYY-0MM-DD, mis. 2016-002-03 untuk 2016-02-03

  • YYYY-DD-0MM, mis. 2016-03-002 (kalau ada yang mau menggunakannya!)

Sepertinya terlalu mudah untuk memperbaikinya dengan cara ini ... Saya kira sederhana tidak terjual dengan baik.

FBTHFL
sumber
2
Yang bisa saya katakan adalah: xkcd.com/927 Kami sudah memiliki standar ISO untuk tanggal, dan tidak perlu yang lain.
Simon B