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.