Bạn nên chỉ định văn hóa nào bạn muốn sử dụng bất cứ khi nào bạn chuyển đổi chuỗi thành một ngày.
Văn hóa bạn nên sử dụng tùy thuộc vào văn hóa ngày được định dạng là.Ví dụ, nếu tất cả các ngày bạn đang phân tích được định dạng như Slovak:
String s = "24. 10. 2011";
Sau đó, bạn cần phải phân tích chuỗi như thể đó là trong Slovak (Slovakia) (sk-SK
) văn hóa:
//Bad:
d = DateTime.Parse(s);
//Good:
d = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("sk-SK")); //Slovak (Slovakia)
Nếu ngày của bạn là tất cả trong Tajik (Tajikistan Cyrillic), thì bạn cần phải phân tích nó như tg-Cryl-Tj
:
String s = "24.10.11"
DateTime d = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("tg-Cryl-Tj"));
Điều gì dẫn đến câu hỏi: bạn đang sử dụng định dạng ngày nào? Bạn không nên dựa vào thiết lập miền địa phương của máy chủ, bạn nên quyết định định dạng nào bạn muốn.
//Bad
String s = d.ToString();
//Good
String s = d.ToString(CultureInfo.CreateSpecificCulture("si-LK")); //Sinhala (Sri Lanka)
//s = "2011-10-24 12:00:00 පෙ.ව."
tôi nghi ngờ bạn thích làm mọi thứ bằng tiếng Anh. Nhưng sau đó bạn phải quyết định mà biến thể của tiếng Anh:
en-AU
(tiếng Anh Austrailia): 24/10/2011
en-IA
(tiếng Anh Ấn Độ): 24-10-2011
en-ZA
(Anh Nam Phi): 2011/10/24
en-US
(Tiếng Anh Hoa Kỳ): 10/24/2011
tôi nghi ngờ bạn thích Tiếng Anh (Ấn Độ) (en-IA
).
Nhưng nếu bạn thực sự không thể quyết định những gì văn hóa để sử dụng khi chuyển đổi ngày để dây và ngược lại, và những ngày không bao giờ có nghĩa là để được hiển thị cho người dùng, sau đó bạn có thể sử dụng Invariant Văn hóa:
String s = "10/24/2011" //invariant culture formatted date
d = DateTime.Parse(s, CultureInfo.InvariantCulture); //parse invariant culture date
s = d.ToString(CultureInfo.InvariantCulture); //convert to invariant culture string
Cho người đã bỏ phiếu vì "rất khó để nói những gì được hỏi ở đây": điều gì khiến bạn khó hiểu? –