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

gunakan anonim0
sumber

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 .

Blair Conrad
sumber
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);
bert
sumber