2012-09-08 48 views
8

Tôi cần chuyển đổi "28/08/2012" sang định dạng MM/dd/YYYY có nghĩa là "28/08/2012".
Tôi có thể làm như thế nào?Chuyển đổi dd/MM/yyyy sang MM/dd/YYYY

Tôi đang sử dụng mã bên dưới, nhưng nó đã ném ngoại lệ cho tôi.

DateTime.ParseExact("28/08/2012", "ddMMyyyy", CultureInfo.InvariantCulture) 

Trả lời

23

nhưng nó ném ngoại lệ với tôi

Vấn đề:

ngày của bạn có chứa / seperator ("28/08/2012") và bạn không cho rằng ở định dạng chuỗi ngày của bạn ("ddMMyyyy").

Giải pháp:

Nó phải là "dd/MM/yyyy".

Bằng cách này

DateTime.ParseExact("28/08/2012", "dd/MM/yyyy", CultureInfo.InvariantCulture) 
         .ToString("MM/dd/yyyy", CultureInfo.InvariantCulture); 

Sau khi làm điều đó, chúng tôi sẽ nhận được một đối tượng DateTime với ngày đông dân cư của bạn được chuyển giao cho chuỗi sử dụng .ToString() với định dạng ngày mong muốn "MM/dd/yyyy" và thông tin văn hóa tùy chọn CultureInfo.InvariantCulture.

+0

Tôi muốn retrivr định dạng trong chuỗi –

+0

Vâng đó là những gì điều này sẽ làm. Đầu tiên nó sẽ chuyển đổi nó thành DateTime và sau đó trở lại thành chuỗi –

+0

@LajjaThaker: Đọc câu trả lời được cập nhật. –

0

Vì ngày ban đầu của bạn ở dạng văn bản en-GB, bạn có thể tạo đối tượng CultureInfo và phân tích cú pháp DateTime một cách tự nhiên.

string date = "28/08/2012"; 
System.Globalization.CultureInfo ci = System.Globalization.CultureInfo.CreateSpecificCulture("en-GB"); 
Convert.ToDateTime(date,ci.DateTimeFormat).ToString("d");//short date pattern 

(OR)

DateTime.Parse(date,ci.DateTimeFormat).ToString("d");