Nếu bạn đang phân tích một giá trị duy nhất, cách tiếp cận đơn giản nhất có lẽ là để chỉ cần sử dụng DateTime.ParseExact
:
DateTime value = DateTime.ParseExact(text, "o", null);
Các "o" mô hình là round-trip pattern, mà được thiết kế để tiêu chuẩn ISO-8601:
Trình định dạng định dạng chuẩn "O" hoặc "o" tương ứng với "yyyy '-' MM '-' dd'T'HH ':' mm ':' ss '.' FffffffK" chuỗi định dạng tùy chỉnh cho DateTime các giá trị và cho "yyyy" - 'MM' - 'dd'T'HH': 'mm': 'ss'. 'fffffffzzz "chuỗi định dạng tùy chỉnh cho các giá trị DateTimeOffset.
tôi đã không chỉ định một nhà cung cấp định dạng, vì nó không quan trọng:
Các mô hình cho specifier điều này phản ánh một tiêu chuẩn định nghĩa (ISO 8601). Vì vậy, nó luôn luôn giống nhau bất kể văn hóa được sử dụng hoặc nhà cung cấp định dạng được cung cấp.
Nếu bạn cần Json.NET xử lý minh bạch trong khi deserializing các giá trị khác, nó có thể là một đề xuất phức tạp hơn - những người khác có thể biết nhiều hơn.
Ngoài ra, cũng giống như một plug, bạn có thể xem xét sử dụng dự án Noda Time của mình, hỗ trợ ISO-8601 và tích hợp với JSON.NET - mặc dù chưa được đóng gói sẵn.
Nguồn
2013-06-25 15:25:25
cần thiết để nhúng nó với dấu ngoặc kép. "\" 2009-02-15T00: 00: 00Z \ "". Cảm ơn, vịt cao su! –
Dirk, bạn đã cứu mạng tôi! – Raymond
lol. nghi ngờ nó, nhưng vui mừng rằng tôi có thể có được một trợ giúp anyway :) –