AccessVBA 世界標準時間を日本時間に変換
VBA 世界標準時間を日本時間に変換する関数
注意点
・日付型と数値型の扱い
VBAでは日付は内部的に数値として扱われる。1日が1.0として計算されるため、時間を計算する際には小数部分を扱う。例えば、1時間は1/24、1分は1/1440、1秒は1/86400となる。
' UTCをJSTに変換
' 引数 : strUTC(文字列) | 例: "2023-05-11 00:10:07 UTC"
Public Function ConvertUTCToJST(strUTC As String) As Date
dim dtUTC as Date
strUTC - Replace(strUTC, " UTC","")
dtUTC = CDate(strUTC)
ConvertUTCToJST = dtUTC + 9 / 24
End Function
Accessでの使用例
UTCのフィールド[SentDate]から時間を変換しJSTのフィールドへ入れる
Public Function UpdateJPTimes(sTableName As String) As Boolean
Dim rst As DAO.Recordset
Dim strSent As String
Dim strJPTime As String
On Error GoTo ErrHandler
Set rst = CurrentDb.OpenRecordset(sTableName)
Do While Not rst.EOF
rst.Edit
If Not IsNull(rst![SentDate]) Then
strSent = rst![SentDate]
strJPTime = ConvertUTCToJST(strSent)
rst![JPTIME] = strJPTime
rst.Update
End If
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
UpdateJPTimes = True
ErrHandler:
MsgBox Err.Description, vbCritical
UpdateJPTimes = False
End Function