2012-11-09 47 views
9

Tôi thích xử lý Thời gian Noda định dạng và phân tích cú pháp giá trị bằng cách sử dụng các loại khác nhau *Pattern trong không gian tên NodaTime.Text. Tuy nhiên, đầu vào của người dùng thường không thường xuyên như một định dạng duy nhất. Ví dụ, ứng dụng của chúng tôi sử dụng định dạng thời gian "h:mm tt" nhưng chúng tôi muốn để có thể phân tích đầu vào người sử dụng trong bất kỳ các định dạng sau:Làm cách nào để phân tích cú pháp nhiều định dạng với Thời gian Noda?

  • h:mm tt
  • h:mmtt (không gian)
  • h:mm t
  • h:mmt (không có khoảng trắng)
  • h tt
  • hh:mm
  • và cứ thế ...

Có cách nào để sử dụng Thời gian Noda để phân tích đầu vào có thể ở bất kỳ định dạng nào không?

Trả lời

3

(Xin lỗi vì đã mất quá nhiều thời gian để phản hồi lại điều này.)

Bực mình, có vẻ như chúng tôi chưa tiếp xúc điều này.

Đó là hiện diện trong thời gian Noda ở lớp CompositePattern. Thật không may đó là nội bộ hiện tại. Tôi đã nêu ra issue 147 để sửa lỗi này tại một số điểm (có thể trong khung thời gian 1,1).

Hiện tại, bạn có thể dễ dàng sử dụng cùng một mã từ CompositePattern - bạn không cần phải tự tạo IPattern<T> vì nó chỉ thực sự là phương pháp Parse hữu ích. (Thật vậy, bạn thậm chí có thể viết nó như là một phương pháp mở rộng trên IEnumerable<IPattern<T>>, mặc dù tôi không chắc chắn offhand cho dù chúng tôi đã cho đủ khả năng hiển thị để tạo ra cùng một loại kết quả thất bại.)

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