Tôi đang cố gắng để phân tích String
sau vào một đối tượng DateTime
trong C#:DateTime.ParseExact không hoạt động chút nào, tại sao?
DateTime.ParseExact("20101108 230125", "yyyyMMdd hhmmss", null)
mặc dù giá trị có vẻ đúng phương pháp ParseExact
chỉ tiếp tục đem lại cho tôi những điều sau đây:
Chuỗi không được công nhận là một DateTime hợp lệ.
Ai có thể cho tôi biết lý do và cách tôi có thể phân tích cú pháp chuỗi ở trên mà không phải thực hiện theo cách thủ công? Không phải là ParseExact
được cho là dành cho loại dịp này?
Tại sao điều này gây ra ngoại lệ? Cá nhân tôi mong đợi hh để chuyển đổi 23 thành 11 thay vì ném một ngoại lệ. ParseExact có gây ra nó không? –
@Marcus: 'ParseExact' sẽ làm những gì nó nói; phân tích cú pháp chuỗi bằng cách sử dụng định dạng * chính xác * được chỉ định. Vì 'hh' yêu cầu nó mong đợi một giá trị thời gian đồng hồ 12 giờ ở vị trí đó,' 23' rõ ràng nằm ngoài phạm vi giá trị chấp nhận được. Nó phân tích chuỗi chính xác, không có chuyển đổi nào được thực hiện. Vì vậy, có, ngoại lệ được ném bởi phương thức 'ParseExact'. –
Chúc mừng cho lời giải thích mở rộng. :) –