不同系统设置的正确格式的当前UTC时间

Mar*_*ijn 2 excel vba

我在Excel中有一个宏,它使用当前UTC时间(小时和分钟)作为字符串,最后将(以及其他内容)写为新Word文档中的文本。目前,它在我的计算机上可以正常运行,但也可以在可能具有不同日期时间格式系统设置的其他计算机上使用。由于这些设置都无法更改,也无法完全看到所有不同的设置,因此我需要宏中的一部分,以便始终在末尾提供相同的格式。我需要实现的格式是HHMM(在24小时内,不是AM / PM),例如:1430。如果系统时间采用以下格式,我现在具有的代码将执行以下操作:“ DD / MM / YYYY HH:MM: SS”。不幸的是,它没有考虑其他因素,例如“ DD / MM / YYYY H:MM”。有简单的方法可以解决此问题吗?我现在拥有的代码如下。

Public Sub UTCtime()

Dim dt As Object, utc As Date, utcHOUR As String

Set dt = CreateObject("WbemScripting.SWbemDateTime")
    dt.SetVarDate Now
    utc = dt.GetVarDate(False)
    utcHOUR = utc
    utcHOUR = Replace(utcHOUR, ":", "")
    utcHOUR = Replace(utcHOUR, " ", "")
    utcHOUR = Right(utcHOUR, 6)
    utcHOUR = Left(utcHOUR, 4)
    utcHOUR = utcHOUR + "Z"

End Sub
Run Code Online (Sandbox Code Playgroud)

Ale*_* K. 5

dt.GetVarDate()返回Date调整为UTC 的类型,这是格式无关的(直到强制转换为字符串),因此很简单:

strUTCTime = Format$(utc, "HHMM") & "Z"
Run Code Online (Sandbox Code Playgroud)