Trong C# làm cách nào để phân tích cú pháp chuỗi định dạng "dd/mm/yyyy"
hoặc định dạng "dd-mm-yyyy"
thành datetime? Tôi nhận được thông báo lỗi cho biết chuỗi của tôi không đúng định dạng. Tôi cần để có thể phân tích tất cả các định dạng không chỉ là một trong số chúng.C# phân tích bất kỳ chuỗi định dạng ngày nào sang ngày giờ
Trả lời
mm
nghĩa là phút, chữ hoa MM
nghĩa là tháng.
Bên cạnh đó, bạn phải sử dụng CultureInfo.InvariantCulture
nếu bạn muốn phân tích chuỗi với /
như ngày separator vì đây là char thay thế cho dấu phân cách ngày văn hóa hiện tại của bạn:
Vì vậy, công trình này:
DateTime.ParseExact("23/07/2013", "dd/MM/yyyy", CultureInfo.InvariantCulture);
+1 cho mm so với MM. – Corak
Bạn có thể sử dụng phương pháp DateTime.ParseExact
với bất kỳ định dạng được chỉ định nào.
var d = DateTime.ParseExact(token, "dd-MM-yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal);
Chuỗi định dạng của bạn sai. 'mm' là phút, không phải tháng. –
@JohnKoerner cảm ơn vì đã bắt được điều đó. – doogle
Bạn cần xác định định dạng ngày nào bạn muốn chấp nhận. Không có điều gì như tất cả các định dạng. Một khi bạn xác định rằng bạn có thể vượt qua mảng định dạng để DateTime.ParseExact
Mã của bạn có thể trông như thế này:
string[] formats = new string[2] {"dd/MM/yyyy", "dd-MM-yyyy"};
string date = "23-02-2013";
try
{
DateTime result = DateTime.ParseExact(date, formats, CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal);
}
catch (FormatException)
{
// your error handling code here
}
Bạn có thể xác định bất kỳ định dạng mà bạn thích - ngoài ra bạn có thể nhận được một danh sách các giá trị mặc định cho một nền văn hóa nhất định.
var ci = new CultureInfo("en-US");
var formats = new[] { "M-d-yyyy", "dd-MM-yyyy", "MM-dd-yyyy", "M.d.yyyy", "dd.MM.yyyy", "MM.dd.yyyy" }
.Union(ci.DateTimeFormat.GetAllDateTimePatterns()).ToArray();
DateTime.ParseExact("07/23/2013", formats, ci, DateTimeStyles.AssumeLocal).Dump();
DateTime.ParseExact("07-23-2013", formats, ci, DateTimeStyles.AssumeLocal).Dump();
DateTime.ParseExact("23-07-2013", formats, ci, DateTimeStyles.AssumeLocal).Dump();
DateTime.ParseExact("23.07.2013", formats, ci, DateTimeStyles.AssumeLocal).Dump();
Output:
7/23/2013 12:00:00 AM
7/23/2013 12:00:00 AM
7/23/2013 12:00:00 AM
7/23/2013 12:00:00 AM
- 1. định dạng ngày giờ sang định dạng SQL bằng C#
- 2. Phân tích chuỗi ngày giờ
- 3. Cách phân tích ngày/giờ từ chuỗi?
- 4. Phân tích định dạng ngày giờ tùy chỉnh
- 5. Phân tích các giá trị ngày/giờ theo ngôn ngữ tự nhiên thành các chuỗi ngày/giờ được định dạng
- 6. Ngày/giờ phân tích cú pháp trong C++ (Mọi chuỗi định dạng thành Epoch)
- 7. Ngày giờ chuyển đổi XSLT sang định dạng ngày
- 8. Phân tích ngày giờ đơn giản
- 9. Định dạng ngày giờ trong C#
- 10. Định dạng chuỗi ngày giờ mặc định với múi giờ
- 11. Cách định dạng chuỗi ngày và giờ bằng C++
- 12. Phân tích chuỗi ngày giờ thành một Django DateTimeField
- 13. Phân tích và định dạng ngày Haskell
- 14. Chuyển đổi ngày/giờ theo định dạng YYYYMMDD/HHMMSS sang ngày giờ Python
- 15. Định dạng ngày giờ Ngày trong năm
- 16. Trích xuất ngày không nhất quán được định dạng từ chuỗi (phân tích ngày, NLP)
- 17. Định dạng ngày và giờ
- 18. C# Ngày giờ Phân tích cú pháp/chuyển đổi định dạng này "20120314T130000"
- 19. phân tích chuỗi ngày trong python (chuyển đổi chuỗi ngày)
- 20. Loại định dạng ngày/giờ nào?
- 21. Phân tích cú pháp một chuỗi thành định dạng "năm-tháng-ngày" trong C#
- 22. Chuyển đổi định dạng ngày tùy chỉnh (chuỗi) thành ngày giờ
- 23. Ngày định dạng Android với múi giờ
- 24. chuyển đổi một chuỗi sang một định dạng ngày
- 25. Vấn đề định dạng ngày giờ trong C#
- 26. Định dạng ngày giờ với Javascript
- 27. Thư viện C để phân tích cú pháp Ngày giờ
- 28. C# ToTitleCase và định dạng văn bản ngày/giờ
- 29. javascript: làm thế nào để phân tích một chuỗi ngày
- 30. Chuỗi phân tích ngày tháng trong Ruby
Hiện chúng tôi mã của bạn. – SLaks
"Tôi cần có khả năng phân tích tất cả các định dạng" - cho rằng tồn tại cả định dạng 'dd/mm/yyyy' và' mm/dd/yyyy', bất kỳ ngày nào trong 12 tháng hoặc sớm hơn trong tháng phải mơ hồ - đó là một vấn đề không thể giải quyết được bằng máy tính. –
Hiển thị cho chúng tôi mã bạn đã thử. –