datetime.parse dan membuatnya bekerja dengan format tertentu


141

Saya memiliki datetime yang kembali dari file XML dalam format:

20080916 11:02

seperti dalam

yyyymm hh: ss

Bagaimana saya bisa mendapatkan fungsi datetime.parse untuk mengambil ini? Yaitu menguraikannya tanpa kesalahan? Bersulang

Jawaban:


246
DateTime.ParseExact(input,"yyyyMMdd HH:mm",null);

dengan asumsi Anda bermaksud mengatakan bahwa menit mengikuti jam, bukan detik - contoh Anda agak membingungkan.

The dokumentasi ParseExact Rincian overloads lain, jika anda ingin memiliki parse secara otomatis mengkonversi ke Universal Time atau sesuatu seperti itu.

Seperti @ Joel Coehoorn menyebutkan, ada juga pilihan untuk menggunakan TryParseExact , yang akan mengembalikan nilai Boolean yang menunjukkan keberhasilan atau kegagalan operasi - saya masih menggunakan .Net 1.1, jadi saya sering lupa yang ini.

Jika Anda perlu mem-parsing format lain, Anda dapat memeriksa String Format DateTime Standar .


11
Jangan lupa DateTime.TryParseExact ()
— Joel Coehoorn

Juga: standar Xml memiliki format DateTime sendiri yang sangat spesifik, dan alat .Net Xml harus dapat membacanya.
— Joel Coehoorn

Dalam hal ini berfungsi baik dengan parameter terakhir sebagai nol tetapi bagi siapa saja yang menemukan CultureInfo.InvariantCulture ini, Anda bisa mendapatkan masalah jika datetime Anda seperti "1823/01/01".
— Todilo

@ JoelCoehoorn standard XML specific DateTime format?
— Kiquenet

10

Terima kasih atas tipnya, saya menggunakan ini untuk mendapatkan tanggal "20071122" saya diuraikan, saya perlu menambahkan datetimestyles, saya tidak menggunakan dan berhasil:

DateTime dt = DateTime.MinValue;

DateTime.TryParseExact("20071122", "yyyyMMdd", null,System.Globalization.DateTimeStyles.None, out dt);
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.