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

时间:2019-04-02 10:27:51

标签: excel vba

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

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

1 个答案:

答案 0 :(得分:5)

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

strUTCTime = Format$(utc, "HHMM") & "Z"