Mengkonversi dd/mm/yyyy format string Datetime

Saya baru DotNet dan C#. Aku ingin mengkonversi string di mm/dd/yyyy format DateTime objek. Aku mencoba mengurai fungsi seperti di bawah ini tetapi melemparkan kesalahan runtime.

DateTime dt=DateTime.Parse("24/01/2013");

Setiap ide-ide tentang bagaimana saya dapat mengkonversi ke datetime?

Larutan

Anda perlu menggunakan DateTime.ParseExact dengan format "dd/MM/yyyy"

DateTime dt=DateTime.ParseExact("24/01/2013", "dd/MM/yyyy", CultureInfo.InvariantCulture);

Untuk lebih aman jika anda menggunakan d/M/yyyy untuk format, karena itu akan menangani kedua digit tunggal dan double digit hari/bulan. Tapi itu benar-benar tergantung jika anda mengharapkan single/double digit nilai-nilai.


Tanggal format hari/Bulan/Tahunmungkin yang dapat diterima format tanggal untuk beberapa budaya. Misalnya untuk Budaya Kanadaen-CA`DateTime.Mengurai akan bekerja seperti:

DateTime dt = DateTime.Parse("24/01/2013", new CultureInfo("en-CA"));

Atau

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-CA");
DateTime dt = DateTime.Parse("24/01/2013"); //uses the current Thread's culture

Kedua garis di atas akan bekerja karena string's format yang dapat diterima untuk en-CA budaya. Karena anda tidak memasok budaya apapun untuk anda DateTime.Mengurai call, anda saat ini budaya digunakan untuk parsing yang doesn't mendukung format tanggal. Baca lebih lanjut tentang hal itu di [DateTime.Mengurai][2].


Metode lain untuk parsing menggunakan [DateTime.TryParseExact][3]

DateTime dt;
if (DateTime.TryParseExact("24/01/2013", 
                            "d/M/yyyy", 
                            CultureInfo.InvariantCulture, 
                            DateTimeStyles.None,
    out dt))
{
    //valid date
}
else
{
    //invalid date
}

The TryParse kelompok metode dalam .Net framework doesn't melempar pengecualian pada nilai-nilai yang tidak valid, sebaliknya mereka kembali bool nilai yang menunjukkan keberhasilan atau kegagalan dalam parsing.

Pemberitahuan yang saya telah digunakan single d dan M untuk hari dan bulan masing-masing. Single d dan M yang bekerja untuk kedua single/double digit di malam hari dan bulan. Jadi untuk format d/M/yyyy nilai yang valid bisa:

  • "24/01/2013"
  • "24/1/2013"
  • "4/12/2013" //4 desember 2013
  • "04/12/2013"

Untuk membaca lebih lanjut, anda harus melihat: Custom Tanggal dan Waktu Format String

[2]: http://msdn.microsoft.com/en-us/library/system.datetime.parse(v=vs. 110).aspx [3]: http://msdn.microsoft.com/en-us/library/system.datetime.tryparse(v=vs. 110).aspx

Komentar (3)

gunakan DateTime.ParseExact

string strDate = "24/01/2013";
DateTime date = DateTime.ParseExact(strDate, "dd/MM/YYYY", null)

null akan menggunakan budaya saat ini, yang agak berbahaya. Cobalah untuk pasokan budaya tertentu

DateTime date = DateTime.ParseExact(strDate, "dd/MM/YYYY", CultureInfo.InvariantCulture)
Komentar (1)

Anda dapat menggunakan "dd/MM/yyyy" format untuk menggunakannya dalam DateTime.ParseExact.

Mengkonversi string tertentu representasi dari tanggal dan waktu untuk DateTime setara dengan menggunakan format yang telah ditentukan dan budaya-spesifik format informasi. Format representasi string harus sesuai format yang ditentukan dengan tepat.

DateTime date = DateTime.ParseExact("24/01/2013", "dd/MM/yyyy", CultureInfo.InvariantCulture);

Berikut ini adalah DEMO.

Untuk informasi lebih lanjut, lihat Kustom Tanggal dan Waktu Format String

Komentar (0)