Solved

Convert time to UTC

Posted on 2008-11-01
7
1,146 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
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
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

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

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

Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.

803 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