2011-09-04 26 views
7

Có nhu cầu rất lớn đối với thư viện phân tích cú pháp DateTime mạnh mẽ cho .NET, thích C# DateTime.TryParse hỗ trợ rất ít định dạng Tôi biết câu hỏi đã được hỏi cách đây một năm nhưng không tốt câu trả lời. Có phải có libs tốt ra khỏi đó! Nguồn mở hoặc thương mạiThư viện trình phân tích cú pháp DateTime mạnh mẽ cho .NET

Tôi đã xem noda-time. Nhưng viết blog nói nó không làm phân tích chưa

Ngày rơi vào hai loại:

định dạng ngày: Tất cả các định dạng ngày khác nhau

  • 2011-09-09T20: 00: 00
  • 29 Tháng Chín 2011
  • 6 tháng 9 năm 2011 7:00 pm
  • 1/1/2009, 12:00 PM

Ngày tự nhiên: Làm sao một con người có thể nói/viết nó

  • Hôm nay
  • Tomorrrow
  • Thứ Hai, 18:00
  • Mỗi Thứ hai, 06:00
  • Mỗi thứ Sáu
  • Đầu tiên thứ hai của mỗi tháng
  • Chủ Nhật cuối cùng của tháng
  • Mỗi ngày
  • ngày 1 tháng
+2

Tôi nghĩ rằng bạn cần phải chờ thời gian Noda (phân tích cú pháp đang được thực hiện) hoặc tự làm. Nếu bạn đóng góp cho Noda Time, bạn có thể tăng tốc độ ... – Richard

Trả lời

9

Bạn có thể sử dụng số C# Date Time Parser của Sergey Stoyan.

+1

Trình phân tích cú pháp của Sergey hoạt động rất tốt. Recommended.All rằng rắc rối chuyển đổi thành: 'if (DateTimeRoutines.TryParseDate (RawDate, DateTimeRoutines.DateTimeFormat.UK_DATE, ra parsedDate))' – Ian

+0

Fantastic! Chỉ cần những gì tôi đang tìm kiếm, khác hơn là nó ra lệnh cho họ theo định dạng datetime "rất có thể", chứ không phải là "đầu tiên", nhưng nó là mã nguồn mở, đủ dễ dàng để sửa đổi. – neminem

1

Không chắc chắn những gì bạn đang tìm kiếm nhưng tôi thích DateTime.TryParseExact() phương pháp.

+5

không TryParseBạn có buộc phải tự cung cấp định dạng không? Tôi nghĩ rằng OP muốn một thư viện mà sẽ làm việc phân tích cú pháp cho bạn một la DateTime.TryParse nhưng với nhiều tính năng hơn. Nhưng có, bạn có thể whip lên một phương pháp phân tích bằng cách sử dụng TryParseExact mà sẽ bao gồm các trường hợp được yêu cầu ở trên. – arviman

+0

@arviman: Có quá tải 'TryParseExact', tập hợp các định dạng. Nhưng sự hỗ trợ thời gian ngày BCL sẵn có sẽ không làm "ngày tự nhiên" như được chỉ định bởi Q. – Richard

+1

Ngày bắt đầu từ trang web hoặc đầu vào của người dùng và định dạng không xác định. Phân tích cú pháp định dạng đã biết dễ phát hiện và phân tích cú pháp định dạng không xác định là rất khó. – Ben42

Các vấn đề liên quan