javagair
asked on
make time out of string
I have a database filled with 24 hr clock times in string format.
9:00 12:13 17:42 you get the picture.
Is there an easy way to get the time between 9:00 and 17:42
I can think of ways to split the string around the colon and then figure the elapsed time, but is there and easy way of doing it? Obviously one can't subtract, because of the silly 60 minutes.
suggestions?
gary
9:00 12:13 17:42 you get the picture.
Is there an easy way to get the time between 9:00 and 17:42
I can think of ways to split the string around the colon and then figure the elapsed time, but is there and easy way of doing it? Obviously one can't subtract, because of the silly 60 minutes.
suggestions?
gary
ASKER
so you are just adding a random date to the time and then using the timespan to look only at the times?
good thinking I will try it
thanks
gary
good thinking I will try it
thanks
gary
ASKER
the enUs is giving me a problem
imported systems.globalization which gave me the DateTimeStyles but enUS still has an error
gary
imported systems.globalization which gave me the DateTimeStyles but enUS still has an error
gary
You can use null in place of enUS, like this:
DateTime time2 = DateTime.ParseExact(dateStub + strtime2, "yyyy-MM-dd hh:mm", null, DateTimeStyles.None)
ASKER
If you put null in the expression, compiler says null is not defined, use system.dbnull which if you do compiler says type system can not be used in expression.
Null was defined in the old Vb, why not now?
datestub = "#2014-01-01 " 'I added the # seems to want one also tried it without the #
Dim cultures() As CultureInfo = {New CultureInfo("en-US")}
savestart = String.Copy(DataGridView1. Item(1, i).Value()) ' this is 8:00
Dim time1, time2, time3, time4 As DateTime ' time1 defaults to #12:00 AM#
put in a break on the next statement and run
time1 = DateTime.ParseExact(datest ub & savestart & " AM#", "yyyy-MM-dd hh:mm", cultures(0), DateTimeStyles.None)
so datestub is #2014-01-01 savestart is 8:00
we end up with #2104-01-01 8:00 AM# or the same with the # and the AM removed.
I get the same message string is in wrong format.
gary
Null was defined in the old Vb, why not now?
datestub = "#2014-01-01 " 'I added the # seems to want one also tried it without the #
Dim cultures() As CultureInfo = {New CultureInfo("en-US")}
savestart = String.Copy(DataGridView1.
Dim time1, time2, time3, time4 As DateTime ' time1 defaults to #12:00 AM#
put in a break on the next statement and run
time1 = DateTime.ParseExact(datest
so datestub is #2014-01-01 savestart is 8:00
we end up with #2104-01-01 8:00 AM# or the same with the # and the AM removed.
I get the same message string is in wrong format.
gary
Sorry, it is VB. You need to use Nothing instead of Null.
Anyway, try this (do not use hashes):
ure"
Anyway, try this (do not use hashes):
DateTime time2 = DateTime.ParseExact(dateStub + strtime2, "yyyy-MM-dd h:mm", CultureInfo.InvariantCulture)
The main thing here is a single "h" in the time format and "CultureInfo.InvariantCultASKER
okay almost got it to work.
anytime greater than 12:00 give the invalid datetime error again.
if I change all times to less than 12 then everything is okay.
So it still does not understand Military time, 24 hr clock
thanks for everything
gary
anytime greater than 12:00 give the invalid datetime error again.
if I change all times to less than 12 then everything is okay.
So it still does not understand Military time, 24 hr clock
thanks for everything
gary
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
thanks
should have noticed that.
works great.
gary
should have noticed that.
works great.
gary
Here is a small example:
Open in new window