Re: Finding the offset of a specific time zone
Michael Levy <[email protected]> Wed, 25 Mar 2009 13:27:54 -0400
| Newsgroups | gmane.comp.windows.devel.dotnet.advanced |
|---|---|
| Message-ID | <[email protected]> |
Can the devices be reconfigured to use UTC instead of the local time? -Mike On Wed, Mar 25, 2009 at 12:59 PM, Eddie Lascu <[email protected]> wrote: > > Peter, > > Everything you said, I already figured it out and it's not helping me. > > Again, a time stamp coming from the field device belongs to a different > time > zone, so using "ToUniversalTime" will give me the wrong result because > "ToUniversalTime" assumes the time is local which is not the case. I > explained that the field devices and the server that runs my application > are > in different time zones. > > On the other hand, I found a class that mimics what TimeZoneInfo does in > .NET 3.5. Incidentally, it is also called TimeZoneInfo. You can get it > here: > > http://www.codeproject.com/KB/vb/TimeZoneInfo.aspx > > With that, I can instantiate an object of type TimeZoneInfo for Pacific > Time > (this would be the only parameter that I need to keep in my configuration > file: the name of the time zone where the field devices are located). > Having > that object (which is built based on available time zone information from > the subkeys of the registry's HKEY_LOCAL_MACHINE\Software\Microsoft\Windows > NT\CurrentVersion\Time Zones key), I can ask what is the Current Time > Offset > and that is the offset I need to add to the values that come from the field > devices in order to obtain the correct UTC. > > Thank you everyone for pitching in with your ideas. > > Regards, > Eddie > > > > -----Original Message----- > From: Discussion of advanced .NET topics. > [mailto:[email protected]] On Behalf Of Peter Ritchie > Sent: Wednesday, March 25, 2009 12:44 PM > To: [email protected] > Subject: Re: [ADVANCED-DOTNET] Finding the offset of a specific time zone > > You can use DateTime.UtcNow to get the current time in UTC. e.g.: > DateTime utcDate = DateTime.UtcNow; > > You can use DateTime.ToUniversalTime() to convert a local time to UTC. > e.g.: > DateTime date = new DateTime(1968, 11, 05, 12,0,0); DateTime utcDate = > date.ToUniversalTime(); > > You can change the type of a date from local to UTC with the SpecifyKind > method (i.e. you get a DateTime object from a database; but it's default > kind is local and its value is actually UTC) e.g: > DateTime dateTime = GetRecordDateFromDatabase(id); dateTime = > dateTime.SpecifyKind(DateTimeKind.Utc); > > You can convert a UTC time to local time with DateTime.ToLocalTime. E.g.: > DateTime utcDate = GetUtcDateFromSomewhere(); DateTime localDate = utcDate > .ToLocalTime(); > > -- Peter > > =================================== > View archives and manage your subscription(s) at > http://peach.ease.lsoft.com/archives > > =================================== > View archives and manage your subscription(s) at > http://peach.ease.lsoft.com/archives > -- Michael Levy MCPD, MCDBA [email protected] =================================== View archives and manage your subscription(s) at http://peach.ease.lsoft.com/archives