Ini adalah pertanyaan yang agak subjektif, dan tidak terlalu penting dalam skema besar, tetapi sesuatu yang mengganggu saya secara teratur. Tampaknya tidak ada cara yang jelas untuk menjelaskan a stempel waktu di nama file .
Masalah obyektif adalah bahwa stempel waktu dalam nama file harus dapat diurutkan . Tetapi format tanggal .NET yang dapat diurutkan seperti "s" ( "yyyy-MM-ddTHH:mm:ss"
) dan "u" ( "yyyy-MM-dd HH:mm:ssZ"
) tidak valid dalam nama file karena karakter ':'.
Hal lainnya adalah Anda harus dengan mudah melihat apakah waktu universal atau lokal digunakan. Secara praktis, pengguna tampaknya lebih menyukai waktu lokal daripada waktu universal.
Saya sebagian besar akhirnya menggunakan ISO 8601 dengan format waktu dasar:
- String format waktu lokal
"yyyy-MM-ddTHHmmsszz"
- String format UTC
"yyyy-MM-ddTHHmmssZ"
Dalam format ini, waktu lokal saya saat ini adalah "2009-08-08T151800+03"
dan UTC"2009-08-08T121800Z"
Anda juga dapat mendeteksi DateTime.Kind secara otomatis dengan "K" dan menggunakan "yyyy-MM-ddTHHmmssK"
, tetapi Anda harus mengganti karakter ':'.
Ada saran lain?
Edit: Beberapa catatan sejauh ini:
format zona waktu + waktu lokal "yyyy-MM-ddTHHmmsszz"
tidak lagi dapat diurutkan jika melibatkan beberapa zona waktu. Dalam kebanyakan kasus, akan masuk akal untuk membuang info zona waktu jika itu berlebihan, dan menggunakan UTC jika tidak.
Hal lain adalah bahwa UTC harus selalu ditandai dengan 'Z', 'GMT' atau 'UTC' untuk mencegah dugaan dan kesalahan.
Tanggal Julian dan lainnya Tanggal bintang yang keren karena tanggal aritmatika dengan kalender Gregorian adalah braindead.