datetime.parse và làm cho nó hoạt động với một định dạng cụ thể


141

Tôi có một datetime quay trở lại từ một tệp XML ở định dạng:

20080916 11:02

như trong

yyyymm hh: ss

Làm thế nào tôi có thể có được hàm datetime.parse để nhận về điều này? Tức là phân tích nó mà không có lỗi? Chúc mừng

Câu trả lời:


246
DateTime.ParseExact(input,"yyyyMMdd HH:mm",null);

giả sử bạn muốn nói rằng phút sau giờ, không phải giây - ví dụ của bạn hơi khó hiểu.

Các tài liệu ParseExact chi tiết quá tải khác, trong trường hợp bạn muốn có phân tích tự động chuyển đổi sang Universal Time hoặc một cái gì đó như thế.

Như @ Joel Coehoorn đề cập, cũng có tùy chọn sử dụng TryPudeExact , sẽ trả về giá trị Boolean cho thấy thành công hay thất bại của hoạt động - Tôi vẫn đang sử dụng .Net 1.1, vì vậy tôi thường quên cái này.

Nếu bạn cần phân tích các định dạng khác, bạn có thể kiểm tra Chuỗi định dạng DateTime tiêu chuẩn .


11
Đừng quên DateTime.TryPudeExact ()
Joel Coehoorn

Ngoài ra: Xml tiêu chuẩn có định dạng DateTime rất cụ thể và các công cụ .Net Xml sẽ có thể đọc được.
Joel Coehoorn

Trong trường hợp này, nó hoạt động tốt với tham số cuối cùng là null nhưng đối với bất kỳ ai tìm thấy CultureInfo.InvariantCARM nếu không bạn có thể gặp sự cố nếu datetime của bạn giống như "1823/01/01".
Todilo

@JoelCoehoorn standard XML specific DateTime format?
Kiquenet

10

Cảm ơn vì tiền boa, tôi đã sử dụng điều này để phân tích ngày "20071122" của mình, tôi cần thêm datetimeststyle, tôi không sử dụng và nó đã hoạt động:

DateTime dt = DateTime.MinValue;

DateTime.TryParseExact("20071122", "yyyyMMdd", null,System.Globalization.DateTimeStyles.None, out dt);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.