• Status: Solved
• Priority: Medium
• Security: Public
• Views: 1203

# Convert time to UTC

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
DColin
• 3
• 2
• 2
1 Solution

Commented:
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

Commented:
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 Commented:
Juan_Barrera:

Yes you have identified the problem correctly.
0

Commented:
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

Commented:
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 Commented:
Hi Juan_Barrera:

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

Commented:
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)

``````
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.