user114518
user114518

Reputation:

DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") is returning AM time instead of PM time?

I'm trying to get the current time via DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")

However, this is spitting out a time 12 hours off of what we want.

For example:

What it spits out: 11/14/2011 2:24:56 am

What we want: 11/14/2011 2:24:56 pm

What noob mistake are we making?

Any help is greatly appreciated :)

Upvotes: 78

Views: 406128

Answers (3)

We have to use the DateTime.Now.ToString("yyyy/MM/dddd HH:mm:ss"). We must use Capital HH for 24 hours format that would avoid discrepancies in accurate presentation of date time.

Must Avoid Mistakes using Date Time in C#

Upvotes: 1

Callum
Callum

Reputation: 855

With C#6.0 you also have a new way of formatting date when using string interpolation e.g.

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

Can't say its any better, but it is slightly cleaner if including the formatted DateTime in a longer string.

More about string interpolation.

Upvotes: 6

Oded
Oded

Reputation: 499132

Use HH for 24 hour hours format:

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

Or the tt format specifier for the AM/PM part:

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

Take a look at the custom Date and Time format strings documentation.

Upvotes: 192

Related Questions