Time zones dates in vb.net 2005

  • Thread starter Thread starter Steve
  • Start date Start date
S

Steve

Hi All

I need to compare date times from 2 different states in Australia in a
Program I have which determines which way to update SQl server 2005 tables
based on the lastupdate (datetime field) datetime

Each location updates the lastupdate field based on the current local
datetime at the the time of saving to SQL server

Perth for example is 2 hours behind Melbourne

How is the best way to do this

Convert both times to UTC first?

Regards
Steve
 
Hi All

Further to the above post

The times can change based on the time of year, as not all states in
Australia use daylight saving and those that do don't always change at the
same time

Regards
Steve
 
I see three ways to store the information:

a) Store UTC only (one field). It is sufficient but afterwards you won't
know at which local time offset it has been stored. It is not necessary if
you don't want to know it.
b) Store UTC (one field) and local time offset (+10 or whatever) in another
field.
c) Store local time and local time offset. By subtracting the latter from
the former, you get UTC.


b) and c) are a matter of taste. They contain the same information. I'd
probably go for b). c) is more like what is used in mail headers ("23:17
+1000" is local time + time offset).

Internally, you can always use and calculate with the UTC datetime values.
If you take the current, local date (Datetime.Now) into your calculations,
also convert to UTC before doing the calculations or before storing it in
the DataRow (later Database). Only convert to local time whenever you want
to display the local time, and convert to UTC when converting input to a
DateTime value.

I guess you know that DateTime provides the ToUniversalTime and ToLocalTime
methods.


Armin
 
Hi Armin

Thanks for the reply

Great explanation

As only the synchronising code uses these dates I have gone with A

I have set the region on 1 computer to 'Perth Australia' and the other is on
'Canberra, Melbourne, Sydney' and it works a treat

Regards
Steve
 
Steve said:
Hi Armin

Thanks for the reply

Great explanation

Was a pleasure. :-)
As only the synchronising code uses these dates I have gone with A

I have set the region on 1 computer to 'Perth Australia' and the other is
on 'Canberra, Melbourne, Sydney' and it works a treat



Armin
 
Back
Top