I had problems in getting TimeZone like “+01:00” on Mac, Windows and Linux
I found a solution:
[code] Dim GlobalTime, LocalTime As String
Dim GlobalD As New Date
Dim LocalD As New Date
Dim TZ As String
Dim db As New SQLiteDatabase
dim rec as RecordSet
// Get GlobalTime and LocalTime With SQLite Database
If db.Connect Then
rec = db.SQLSelect(“SELECT datetime(‘now’) As GlobalTime, datetime(‘now’, ‘localtime’) As LocalTime;”)
If rec <> Nil and Not rec.EOF Then
GlobalTime = rec.Field(“GlobalTime”).StringValue
LocalTime = rec.Field(“LocalTime”).StringValue
End if
End If
db.Close
// Tranform String 2015-01-07 13:50:01 in Date
GlobalD.Year = Val(Mid(GlobalTime, 1, 4))
GlobalD.Month = Val(Mid(GlobalTime, 6, 2))
GlobalD.Day = Val(Mid(GlobalTime, 9, 2))
GlobalD.Hour = Val(Mid(GlobalTime, 12, 2))
GlobalD.Minute = Val(Mid(GlobalTime, 15, 2))
GlobalD.Second = Val(Mid(GlobalTime, 18, 2))
LocalD.Year = Val(Mid(LocalTime, 1, 4))
LocalD.Month = Val(Mid(LocalTime, 6, 2))
LocalD.Day = Val(Mid(LocalTime, 9, 2))
LocalD.Hour = Val(Mid(LocalTime, 12, 2))
LocalD.Minute = Val(Mid(LocalTime, 15, 2))
LocalD.Second = Val(Mid(LocalTime, 18, 2))
// Calculate DateDiff in Hours
TZ = Str((GlobalD.TotalSeconds - LocalD.TotalSeconds) / 3600)
// Transform -1,5 => +01:30
If Left(TZ,1) = “-” Then
TZ = ReplaceAll(TZ,"-","+")
Else
TZ = “-” + TZ
End If
If Right(TZ,2) = “.5” Then
TZ = ReplaceAll(TZ,".5",":30")
Else
If Right(TZ,2) = ",5" Then
TZ = ReplaceAll(TZ,",5",":30")
Else
TZ = TZ + ":00"
End If
End If
If Mid(TZ,3,1) = “:” Then TZ = Left(TZ,1) + “0” + Right(TZ,4)
// see the result
MsgBox TZ[/code]
Perhaps it might be helpful to someone else
(Someone could test if it works in other Counties? Thank you)
Rob