【发布时间】:2011-10-24 02:12:09
【问题描述】:
如何使用 VBS 获取当前日期和时间(对于 Windows。我不是在寻找用于 ASP/ASPX 或网页的 VBScript)。
【问题讨论】:
-
asawyer 就是网页。不寻找网页。即使你的答案是正确的,我也不能给你信用,因为你将它添加为评论。
标签: vbscript
如何使用 VBS 获取当前日期和时间(对于 Windows。我不是在寻找用于 ASP/ASPX 或网页的 VBScript)。
【问题讨论】:
标签: vbscript
您可以在 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
【讨论】:
要阐述 Numenor 的答案,您可以执行类似 Format(Now(),"HH:mm:ss") 的操作 使用这些custom date/time 格式化选项
对于想要否决这个答案的每个人,请注意该问题最初被标记为 VB 和 vbscript,因此我的回答是,VB 标记已被编辑掉,只留下了 vbscript 标记。 OP 接受这个答案,我认为这意味着它为他提供了他需要的信息。
【讨论】:
对于 VBScript,请使用 FormatDateTime,它有 5 个数字参数,可为您提供 5 种预定义格式之一。它不是很好。
FormatDateTime(now, 4)
08:12
【讨论】:
这是一个老问题,但这里的很多答案都使用 VB 或 VBA。标签上写着 vbscript(我就是这么来的)。
这里的答案有点混乱,因为 VB 非常广泛,你可以有这么多的应用程序。我的答案完全是关于 vbscript 并完成了我的 在 vbscript 中格式化 YYYYMMDD
分享我所学到的:
DateTime 函数,因此您可以混合匹配以获得您想要的结果YYYYMMDD,我只需要连接DatePart,就像当前日期一样:date = DatePart("yyyy",Date) & DatePart("m",Date) & DatePart("d",Date)
就是这样,我希望这对某人有所帮助。
【讨论】:
d=CDate("2010-02-16") DatePart("m",d) 返回 2 而不是 02。所以你必须像下面的这个答案一样填充:stackoverflow.com/a/52822934/666414
now返回当前日期和时间
【讨论】:
还有单独的Time() 和Date() 函数。
【讨论】:
以 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
【讨论】: