前提・実現したいこと
どんな環境のPCでもJST時間でログを記録したいと考えています。
(英語OSでも、タイムゾーンを他国に設定していても)
ちなみに、NOW関数を使った場合はタイムゾーンに依存することがわかりましたので、
例えば地域をアメリカにしてしまうとアメリカ時間が取得されたのでNGでした。
いまのところの考えではUTC時間を取得してから+9時間を調整すればよいかと考えていますが、
思うように習得できずにいます。
試したこと
【参考元1】
https://www.366service.com/jp/qa/365938f2e4504e7ec8a8f445f0b47779
【URL先からコードを抜粋】
VBScript
1 Set dateTime = CreateObject("WbemScripting.SWbemDateTime") 2dateTime.SetVarDate (now()) 3wscript.echo "Local Time: " & dateTime 4wscript.echo "UTC Time: " & dateTime.GetVarDate (false)
この方法ではあとから数字の加工(+9時間)するこができなさそうで断念しました。。。
【参考元2】
http://www.wmifun.net/sample/win32_utctime.html
【URL先からコード抜粋】
VBScript
1Option Explicit 2 3'WMIにて使用する各種オブジェクトを定義・生成する。 4Dim oClassSet 5Dim oClass 6Dim oLocator 7Dim oService 8Dim sMesStr 9 10'ローカルコンピュータに接続する。 11Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator") 12Set oService = oLocator.ConnectServer 13'クエリー条件を WQL にて指定する。 14Set oClassSet = oService.ExecQuery("Select * From Win32_UTCTime") 15 16'コレクションを解析する。 17For Each oClass In oClassSet 18 19sMesStr = sMesStr & oClass.Hour & ": " & oClass.Minute & ": " & oClass.Second & vbCrLf 20 21Next 22 23MsgBox ("UTC (協定世界時) に関する情報です。" & vbCrLf & vbCrLf & sMesStr) 24 25'使用した各種オブジェクトを後片付けする。 26Set oClassSet = Nothing 27Set oClass = Nothing 28Set oService = Nothing 29Set oLocator = Nothing
この場合はhh:mm:ss形式で取得することはできませんでした。
7時8分5秒が7:8:5となる。。。
回答1件
あなたの回答
tips
プレビュー