Tukar String kepada DateTime dalam C#
Menukar tarikh rentetan kepada objek DateTime dalam C# boleh menjadi tugas yang mencabar, terutamanya apabila berurusan dengan format bukan standard. Salah satu format sedemikian ialah "yyyyMMddHHmmss", yang mewakili tarikh tanpa pemisah.
Masalah:
Pertimbangkan tarikh rentetan berikut:
20090530123001
Rentetan ini dibuat menggunakan dateTime.ToString("yyyyMMddHHmmss", CultureInfo.InvariantCulture). Bagaimanakah kita boleh menukarnya semula menjadi objek DateTime yang betul?
Penyelesaian:
Pendekatan paling mudah ialah menggunakan kaedah DateTime.ParseExact. Kaedah ini mengambil tiga parameter:
Untuk rentetan yang diberikan, kita boleh menggunakan kod berikut:
DateTime dateTime = DateTime.ParseExact("20090530123001", "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
Ini akan berjaya menukar rentetan menjadi objek DateTime.
Mengendalikan Format Tidak Sah:
Walau bagaimanapun, jika rentetan mungkin tidak sentiasa berada dalam format yang betul, menggunakan ParseExact boleh menghasilkan FormatException. Untuk mengelakkan ini, anda boleh menggunakan kaedah DateTime.TryParseExact sebaliknya. Kaedah ini mengambil parameter yang sama seperti ParseExact tetapi mengembalikan nilai boolean yang menunjukkan sama ada penukaran berjaya.
Kod berikut menunjukkan cara menggunakan TryParseExact:
DateTime dateTime; if (DateTime.TryParseExact("20090530123001", "yyyyMMddHHmmss", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime)) { // Conversion successful } else { // Conversion failed }
Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan 'yyyyMMddHHmmss' kepada Objek DateTime dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!