@@ -880,7 +880,7 @@ Private Function json_UnsignedAdd(json_Start As Long, json_Increment As Long) As
880880End Function
881881
882882''
883- ' VBA-UTC v1.0.1
883+ ' VBA-UTC v1.0.2
884884' (c) Tim Hall - https://github.com/VBA-tools/VBA-UtcConverter
885885'
886886' UTC/ISO 8601 Converter for VBA
@@ -1005,7 +1005,8 @@ Public Function ParseIso(utc_IsoString As String) As Date
10051005 Case 1
10061006 utc_Offset = TimeSerial(VBA.CInt(utc_OffsetParts(0 )), VBA.CInt(utc_OffsetParts(1 )), 0 )
10071007 Case 2
1008- utc_Offset = TimeSerial(VBA.CInt(utc_OffsetParts(0 )), VBA.CInt(utc_OffsetParts(1 )), VBA.CInt(utc_OffsetParts(2 )))
1008+ ' VBA.Val does not use regional settings, use for seconds to avoid decimal/comma issues
1009+ utc_Offset = TimeSerial(VBA.CInt(utc_OffsetParts(0 )), VBA.CInt(utc_OffsetParts(1 )), Int(VBA.Val(utc_OffsetParts(2 ))))
10091010 End Select
10101011
10111012 If utc_NegativeOffset Then : utc_Offset = -utc_Offset
@@ -1020,13 +1021,14 @@ Public Function ParseIso(utc_IsoString As String) As Date
10201021 Case 1
10211022 ParseIso = ParseIso + VBA.TimeSerial(VBA.CInt(utc_TimeParts(0 )), VBA.CInt(utc_TimeParts(1 )), 0 )
10221023 Case 2
1023- ParseIso = ParseIso + VBA.TimeSerial(VBA.CInt(utc_TimeParts(0 )), VBA.CInt(utc_TimeParts(1 )), VBA.CInt(utc_TimeParts(2 )))
1024+ ' VBA.Val does not use regional settings, use for seconds to avoid decimal/comma issues
1025+ ParseIso = ParseIso + VBA.TimeSerial(VBA.CInt(utc_TimeParts(0 )), VBA.CInt(utc_TimeParts(1 )), Int(VBA.Val(utc_TimeParts(2 ))))
10241026 End Select
1025-
1027+
1028+ ParseIso = ParseUtc(ParseIso)
1029+
10261030 If utc_HasOffset Then
10271031 ParseIso = ParseIso + utc_Offset
1028- Else
1029- ParseIso = ParseUtc(ParseIso)
10301032 End If
10311033 End If
10321034
0 commit comments