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");
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
var time = DateTime.ParseExact("17:00", "HH:mm", null).ToString("hh:mm tt");
returns 05:00 PM
DateTime.ParseExact is returning DateTime
Edited:
Include CultureInfo
var time = DateTime.ParseExact("17:00", "HH:mm", null).ToString("hh:mm tt", CultureInfo.GetCultureInfo("en-US"));
Method 2
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.
string s = DateTime.Today.Add(duration).ToString(specifier);
Method 3
Don’t forget to specify appropriate culture, e.g.: CultureInfo.InvariantCulture.
var time = DateTime.Now.ToString("h:mm tt", CultureInfo.InvariantCulture);
See also: Custom Date and Time Format Strings
Method 4
I just needed to display static html with my TimeSpan. So in my view I used,
DateTime.Today.Add(StartTime).ToString("%h:mm tt")
“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.
Method 5
Based on your comment, first convert the TimeSpan to a DateTime:
var dtUtc = DateTime.Now.ToUniversalTime(); dtUtc.AddHours(timeSpanObject.Hours); dtUtc.AddMinutes(timeSpanObject.Minutes);
Once it’s a DateTime, you can convert it from UTC to localtime:
var dtLocal = dtUtc.ToLocalTime();
Only when you display it would you include AM/PM, like:
dtLocal.ToString("h:mm tt");
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0