Tips and tricks for .NET using ASP and VB code.

Get the current date and time from an NIST server

        Dim NistTime As Date = GetNetTime("time.nist.gov")
Dim TimeDifference As TimeSpan = NistTime.ToLocalTime - Now
Today = NistTime.ToLocalTime
TimeOfDay = NistTime.ToLocalTime
Diagnostics.Debug.WriteLine("This computer's clock was set to: " & NistTime.ToString)
Diagnostics.Debug.WriteLine("This computer's clock was adjusted by: " & TimeDifference.ToString)

Public Function GetNetTime(ByVal NistServer As String) As Date
Dim NetTime As Date = Nothing
Dim TimeReceivedBoolean As Boolean = False
Dim TimeReceivedText As String = ""
Dim TimeParts() As String
Try
Dim TimeReader As New IO.StreamReader(New Net.Sockets.TcpClient(NistServer, 13).GetStream)
TimeReceivedText = TimeReader.ReadToEnd()
TimeReader.Close()
TimeReceivedBoolean = True
Catch
TimeReceivedBoolean = False
End Try
If TimeReceivedBoolean Then
TimeParts = Split(TimeReceivedText, " ", -1, CompareMethod.Text)
If TimeParts.Length > 1 Then
If (TimeParts(1) Like "##-##-##") And (TimeParts(2) Like "##:##:##") Then
Dim NetTimeYear As UShort = Strings.Mid(TimeParts(1), 1, 2) + 2000
Dim NetTimeMonth As UShort = Strings.Mid(TimeParts(1), 4, 2)
Dim NetTimeDay As UShort = Strings.Mid(TimeParts(1), 7, 2)
Dim NetTimeHour As UShort = Strings.Mid(TimeParts(2), 1, 2)
Dim NetTimeMinute As UShort = Strings.Mid(TimeParts(2), 4, 2)
Dim NetTimeSecond As UShort = Strings.Mid(TimeParts(2), 7, 2) + 1
Try
NetTime = New Date(NetTimeYear, NetTimeMonth, NetTimeDay, NetTimeHour, NetTimeMinute, NetTimeSecond, DateTimeKind.Utc)
Catch
NetTime = Nothing
End Try
Else
NetTime = Nothing
End If
Else
NetTime = Nothing
End If
Else
NetTime = Nothing
End If
Return NetTime
End Function

No comments:

Post a Comment

Search This Blog