DateTime.Now.ToString (“yyyy-MM-dd hh: mm: ss”) đang trả về giờ SA thay vì giờ CH?


75

Tôi đang cố gắng xem thời gian hiện tại qua DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")

Tuy nhiên, điều này khiến chúng ta mất 12 giờ so với những gì chúng ta muốn.

Ví dụ:

Những gì nó phun ra: 11/14/2011 2:24:56 am

Những gì chúng ta muốn: 11/14/2011 2:24:56 pm

Chúng ta đang mắc sai lầm nào?

Bất kỳ trợ giúp nào cũng được đánh giá rất cao :)


2
Điểm đánh dấu am / pm được thêm vào đâu vì nó không có trong chuỗi định dạng của bạn, ví dụ: 'tt'?
Shaun Wilde

7
Vì lý do nào đó mà bạn nói chuỗi định dạng sản xuất ( 11/14/2011 2:24:56 am) rất khác với những gì tôi mong đợi chuỗi định dạng bạn đã đăng ( yyyy-MM-dd hh:mm:ss) tạo ra. Bạn có chắc về điều này?
Oded

Câu trả lời:


177

Sử dụng HHcho định dạng 24 giờ:

DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")

Hoặc mã ttđịnh dạng cho AM/PMphần:

DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt")

Hãy xem tài liệu về chuỗi định dạng Ngày và Giờ tùy chỉnh .


Tôi đã phải sử dụng MomentJS chỉ để làm điều đó, điều này giúp tiết kiệm rất nhiều địa ngục của thời gian :)
Shekhar K. Sharma

5

Với C # 6.0, bạn cũng có một cách định dạng ngày mới khi sử dụng nội suy chuỗi, ví dụ:

$"{DateTime.Now:yyyy-MM-dd HH:mm:ss}"

Không thể nói nó tốt hơn chút nào, nhưng nó sẽ gọn gàng hơn một chút nếu bao gồm DateTime được định dạng trong một chuỗi dài hơn.

Thông tin thêm về nội suy chuỗi.

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.