SQL Server 2012
Key: Eastern Standard Time
Offset: -240
.Net 3.5 TimeZoneInfo
Key: Eastern Standard Time
Offset: -300
Technology Tips and News
SQL Server 2012
Key: Eastern Standard Time
Offset: -240
.Net 3.5 TimeZoneInfo
Key: Eastern Standard Time
Offset: -300
Hi,
This should be correct because
gives you the offset from GMT whereas TimeZoneInfo does not .
How do you get the value / how does your code look like?
By the difference of 1 hour I guess: Daylight Saving? Do you query the time offset both with the same date?
her are some code snippets
SQL Code
DECLARE @TimeZone VARCHAR(50), @TimeZoneOffset as datetimeoffset EXEC MASTER.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Control\TimeZoneInformation', 'TimeZoneKeyName', @TimeZone OUT set @TimeZoneOffset = SYSDATETIMEOFFSET() SELECT @TimeZone as TimeZone, datepart(TZOFFSET, @TimeZoneOffset) as [tzOffset]
.Net 3.5 Code
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim tzCollection As ReadOnlyCollection(Of TimeZoneInfo)
tzCollection = TimeZoneInfo.GetSystemTimeZones()
'Index: 92
'Key: Eastern Standard Time
'Offset: -300
For index As Integer = 0 To tzCollection.Count - 1
Debug.Print("Index: " & index.ToString & vbTab & "Key: " & tzCollection(index).Id & vbTab & vbTab & "Offset: " & tzCollection(index).BaseUtcOffset.TotalMinutes)
Next
End Sub
The 2 machines you are testing have different server timezone settings. This is causing the difference.