Reputation:
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
Reputation: 1
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
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
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