I'm storing user time in UTC time and when I show it I need to convert it to am pm time.
Here is example in database I have 17:00:00 convert to 5:00 pm
Here is the code what I came up so far but it's not working
var time = DateTime.ParseExact(object.Time.ToString(), "HHmm", CultureInfo.CurrentCulture).ToString("hh:mm tt");
Based on your comment, first convert the
TimeSpan
to aDateTime
:Once it's a
DateTime
, you can convert it from UTC to localtime:Only when you display it would you include AM/PM, like:
returns 05:00 PM
DateTime.ParseExact is returning DateTime
Edited:
Include CultureInfo
Don't forget to specify appropriate culture, e.g.:
CultureInfo.InvariantCulture
.See also: Custom Date and Time Format Strings
I just needed to display static html with my TimeSpan. So in my view I used,
"StartTime" is my TimeSpan, it converts it to a DateTime and then displays it. My time now displays as "3:00 PM" instead of "15:00". The "%h" eliminates a leading zero for time that is between 1-9.
TimeSpan is a duration "17 hours", not a time. Maybe add this to a date (only) and use the existing datetime formatting options? (although watch for daylight savings)
i.e.