Solved

Convert time to UTC

Posted on 2008-11-01
7
1,151 Views
Last Modified: 2012-05-05
Hi Experts,

I would like to convert a time (Always Netherlands time) to UTC but the converting software will run on computers set to different time zones London, New York etc.
0
Comment
Question by:DColin
  • 3
  • 2
  • 2
7 Comments
 
LVL 31

Expert Comment

by:Frosty555
ID: 22860365
vb.net's date object lets you convert to UTC time pretty easily.

Dim a as Date = Now()          <--- or set to whatever date you want in whatever timezone
a.ToUniversalTime()              <--- returns utc date
0
 
LVL 20

Expert Comment

by:Juan_Barrera
ID: 22860421
The problem is that he will be trying to convert a Netherlands time using, for example, a London based system. The .net datetime object relies on the windows system time api, so it will fail.
But, if you can determine the timezone on where the code is running, then you can find the difference between that zone and the Netherlands zone, "convert" the time from NEtherlands to the new zone and, finally, call the function time.ToUniversalTime
0
 

Author Comment

by:DColin
ID: 22860970
Juan_Barrera:

Yes you have identified the problem correctly.
0
Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

 
LVL 31

Expert Comment

by:Frosty555
ID: 22863249
Hmm so then you can convert local time to UTC time. Then, since UTC is a standard, and netherlands is +01:00 UTC, we can just add one hour to the UTC time to get the netherlands time. Then convert that time back to UTC time and presto.

Not sure how daylight savings would play into this but I believe it will be taken into account in the conversion to UTC time.

        Dim localtime As Date = Now()
        Dim nethertime As Date = localtime.ToUniversalTime().AddHours(1)
        Dim newutctime As Date = nethertime.ToUniversalTime()

Give that a try. If that works, point split between Juan and me.
0
 
LVL 20

Expert Comment

by:Juan_Barrera
ID: 22863906
DColin:

Try this:

'Find Amsterdam TimeZone info
Dim tst As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time")

'Declare the Amsterdam time you want to convert
Dim time As DateTime = "YourAmsterdamTime"

'Substract UTC offset, as Amsterdam will always be ahead
time = time.Subtract(tst.BaseUtcOffset)

For more inf oabout the TimeZone class:
http://msdn.microsoft.com/en-us/library/system.timezone.aspx

0
 

Author Comment

by:DColin
ID: 22868516
Hi Juan_Barrera:

This is almost working but the only problem is that it is not taking into account Dutch daylight savings time.
0
 
LVL 20

Accepted Solution

by:
Juan_Barrera earned 500 total points
ID: 22870200
Does the following work with Daylight savings?
 

'Find Amsterdam TimeZone info
Dim tst As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time")
'Declare the Amsterdam time you want to convert
Dim time As DateTime = "AmsterdamTime"
TimeZoneInfo.ConvertTimeToUtc(time, tst)
 
More info on: http://msdn.microsoft.com/en-us/library/bb495915.aspx

Open in new window

0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
VB.Net - TypeInitializer Error 25 32
VB.NET (2008) - Refactoring Question 2 24
get row value in vb.net 4 18
Obtain cell value using column ID in DataGrid using VB.NET 2 25
If you're writing a .NET application to connect to an Access .mdb database and use pre-existing queries that require parameters, you've come to the right place! Let's say the pre-existing query(qryCust) in Access takes a Date as a parameter and l…
Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question