Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert string to Time

Tags:

c#

asp.net

I have a time that is 16:23:01. I tried using DateTime.ParseExact, but it's not working.

Here is my code:

string Time = "16:23:01";  DateTime date = DateTime.ParseExact(Time, "hh:mm:ss tt", System.Globalization.CultureInfo.CurrentCulture);  lblClock.Text = date.ToString(); 

I want it to show in the label as 04:23:01 PM.

like image 922
Apollo Avatar asked Sep 20 '13 14:09

Apollo


People also ask

Can we convert string to timestamp?

To convert a date string to a timestamp: Pass the date string to the Date() constructor. Call the getTime() method on the Date object. The getTime method returns the number of milliseconds since the Unix Epoch.

How do I convert string to time in Excel?

Convert text string to date and time In the blank cell, type this formula =DATE(LEFT(A1,4),MID(A1,5,2),MID(A1,7,2))+TIME(MID(A1,10,2),RIGHT(A1,2),0), and then press Enter key, if you need, you can apply this formula to a range.


1 Answers

"16:23:01" doesn't match the pattern of "hh:mm:ss tt" - it doesn't have an am/pm designator, and 16 clearly isn't in a 12-hour clock. You're specifying that format in the parsing part, so you need to match the format of the existing data. You want:

DateTime dateTime = DateTime.ParseExact(time, "HH:mm:ss",                                         CultureInfo.InvariantCulture); 

(Note the invariant culture, not the current culture - assuming your input genuinely always uses colons.)

If you want to format it to hh:mm:ss tt, then you need to put that part in the ToString call:

lblClock.Text = date.ToString("hh:mm:ss tt", CultureInfo.CurrentCulture); 

Or better yet (IMO) use "whatever the long time pattern is for the culture":

lblClock.Text = date.ToString("T", CultureInfo.CurrentCulture); 

Also note that hh is unusual; typically you don't want to 0-left-pad the number for numbers less than 10.

(Also consider using my Noda Time API, which has a LocalTime type - a more appropriate match for just a "time of day".)

like image 168
Jon Skeet Avatar answered Sep 19 '22 21:09

Jon Skeet