【问题标题】:How do I get the Date & Time (VBS)如何获取日期和时间 (VBS)
【发布时间】:2011-10-24 02:12:09
【问题描述】:

如何使用 VBS 获取当前日期和时间(对于 Windows。我不是在寻找用于 ASP/ASPX 或网页的 VBScript)。

【问题讨论】:

标签: vbscript


【解决方案1】:

您可以在 Windows 脚本宿主 (WSH) 下运行的 vbscript 中提取各种日期和时间信息:

Now   = 2/29/2016 1:02:03 PM
Date  = 2/29/2016
Time  = 1:02:03 PM
Timer = 78826.31     ' seconds since midnight

FormatDateTime(Now)                = 2/29/2016 1:02:03 PM
FormatDateTime(Now, vbGeneralDate) = 2/29/2016 1:02:03 PM
FormatDateTime(Now, vbLongDate)    = Monday, February 29, 2016
FormatDateTime(Now, vbShortDate)   = 2/29/2016
FormatDateTime(Now, vbLongTime)    = 1:02:03 PM
FormatDateTime(Now, vbShortTime)   = 13:02

Year(Now)   = 2016
Month(Now)  = 2
Day(Now)    = 29
Hour(Now)   = 13
Minute(Now) = 2
Second(Now) = 3

Year(Date)   = 2016
Month(Date)  = 2
Day(Date)    = 29

Hour(Time)   = 13
Minute(Time) = 2
Second(Time) = 3

Function LPad (str, pad, length)
    LPad = String(length - Len(str), pad) & str
End Function

LPad(Month(Date), "0", 2)    = 02
LPad(Day(Date), "0", 2)      = 29
LPad(Hour(Time), "0", 2)     = 13
LPad(Minute(Time), "0", 2)   = 02
LPad(Second(Time), "0", 2)   = 03

Weekday(Now)                     = 2
WeekdayName(Weekday(Now), True)  = Mon
WeekdayName(Weekday(Now), False) = Monday
WeekdayName(Weekday(Now))        = Monday

MonthName(Month(Now), True)  = Feb
MonthName(Month(Now), False) = February
MonthName(Month(Now))        = February

Set os = GetObject("winmgmts:root\cimv2:Win32_OperatingSystem=@")
os.LocalDateTime = 20131204215346.562000-300
Left(os.LocalDateTime, 4)    = 2013 ' year
Mid(os.LocalDateTime, 5, 2)  = 12   ' month
Mid(os.LocalDateTime, 7, 2)  = 04   ' day
Mid(os.LocalDateTime, 9, 2)  = 21   ' hour
Mid(os.LocalDateTime, 11, 2) = 53   ' minute
Mid(os.LocalDateTime, 13, 2) = 46   ' second

Dim wmi : Set wmi = GetObject("winmgmts:root\cimv2")
Set timeZones = wmi.ExecQuery("SELECT Bias, Caption FROM Win32_TimeZone")
For Each tz In timeZones
    tz.Bias    = -300
    tz.Caption = (UTC-05:00) Eastern Time (US & Canada)
Next

Source

【讨论】:

  • 应该是这个问题的“新”接受答案
【解决方案2】:

要阐述 Numenor 的答案,您可以执行类似 Format(Now(),"HH:mm:ss") 的操作 使用这些custom date/time 格式化选项


对于想要否决这个答案的每个人,请注意该问题最初被标记为 VB 和 vbscript,因此我的回答是,VB 标记已被编辑掉,只留下了 vbscript 标记。 OP 接受这个答案,我认为这意味着它为他提供了他需要的信息。

【讨论】:

  • @Ekkehard.Horner 您似乎错过了 Joel Coehoorn 在 2 月 27 日编辑的 Vb 标签。这个问题最初被标记为 Vb 和 VBScript,因此我给出了答案,它似乎符合OP 的要求,因为他将其标记为答案。
  • 我只是希望答案对于现在的问题是正确的。抱歉,我不应该投反对票。
【解决方案3】:

对于 VBScript,请使用 FormatDateTime,它有 5 个数字参数,可为您提供 5 种预定义格式之一。它不是很好。

  FormatDateTime(now, 4)
  08:12

【讨论】:

    【解决方案4】:

    这是一个老问题,但这里的很多答案都使用 VB 或 VBA。标签上写着 vbscript(我就是这么来的)。

    这里的答案有点混乱,因为 VB 非常广泛,你可以有这么多的应用程序。我的答案完全是关于 vbscript 并完成了我的 在 vbscript 中格式化 YYYYMMDD

    分享我所学到的:

    1. vbscript 中定义了here 中的所有DateTime 函数,因此您可以混合匹配以获得您想要的结果
    2. 我需要的是获取当前日期并将其格式化为YYYYMMDD,我只需要连接DatePart,就像当前日期一样:date = DatePart("yyyy",Date) & DatePart("m",Date) & DatePart("d",Date)

    就是这样,我希望这对某人有所帮助。

    【讨论】:

    【解决方案5】:

    now返回当前日期和时间

    【讨论】:

    • 我可以操作返回的字符串吗?例如。我想要 24 小时格式的时间(没有 AM/PM)
    【解决方案6】:

    还有单独的Time()Date() 函数。

    【讨论】:

      【解决方案7】:

      以 24 小时形式显示时间

      Right("0" & hour(now),2) & ":" & Right("0" & minute(now),2)   = 01:35
      Right("0" & hour(now),2)                                      = 01
      Right("0" & minute(now),2)                                    = 35
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 2011-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-09
        相关资源
        最近更新 更多