To solve this issue, I made changes following this article describing GMT and DLST corrections:
First, I added these functions to parse the string into a date object and then adjust for day light savings time (DLST) and Greenwich Median Time (GMT)
Function GetLocalTimeFromGMT(Optional GMTTime As Date) As Date
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' GetLocalTimeFromGMT
' This returns the Local Time from a GMT time. If GMTTime is present and
' greater than 0, it is assumed to be the GMT from which we will calculate
' Local Time. If GMTTime is 0 or omitted, it is assumed to be the GMT
' time.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim GMT As Date
Dim TZI As TIME_ZONE_INFORMATION
Dim DST As TIME_ZONE
Dim localTime As Date
DST = GetTimeZoneInformation(TZI)
localTime = GMTTime - TimeSerial(0, TZI.Bias, 0) + IIf(DST =
TIME_ZONE_DAYLIGHT, TimeSerial(1, 0, 0), 0)
GetLocalTimeFromGMT = localTime
End Function
----------------------------------------------------------------------------
Function ParseDateTime(dt As String) As Date
ParseDateTime = CDate(dt)
End Function
Next, I modified the the main function to call on the time adjustment functions:
'Get CreationTime
Set myWF = block_watch.Data
creationTime = myWF.Properties.Item("Created")
localTime = ParseDateTime(creationTime)
I now have time being fed into my function that is corrected for any time keeping methods and is accurate to within a few seconds.