Как получить дату и время (VBS)

Как получить текущую дату и время с помощью VBS (для Windows. Я не ищу VBScript для ASP/ASPX или веб-страниц).

Ответ 1

Чтобы разъяснить ответ Numenor, вы можете сделать что-то вроде Format (Now(), "HH: mm: ss"), используя эти пользовательские параметры форматирования даты/времени.


Для всех, кто испытывает желание понизить этот ответ, имейте в виду, что вопрос был изначально помечен как VB и vbscript, и, следовательно, мой ответ, тег VB был отредактирован, оставив только тег vbscript. ОП принял этот ответ, который, как я понимаю, дал ему информацию, в которой он нуждался.

Ответ 2

Вот различные сведения о дате и времени, которые вы можете получить в vbscript, работающем под Windows Script Host (WSH):

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:[email protected]")
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

Источник

Ответ 3

Для VBScript используйте FormatDateTime, который содержит 5 числовых аргументов, чтобы предоставить вам один из 5 предопределенных форматов. Это не здорово.

  FormatDateTime(now, 4)
  08:12

Ответ 4

Существуют также отдельные функции Time() и Date().

Ответ 5

Это старый вопрос, но многие ответы здесь используют VB или VBA. Тег говорит vbscript (именно так я сюда попал).

Ответы здесь запутались, так как VB очень широк, где вы можете использовать его очень много. Мой ответ только на vbscript и завершает мой случай форматирования в ГГГГММДД в vbscript

Поделиться тем, что я узнал:

  1. Есть все DateTime функции в VBScript, определенная здесь, так что вы можете смешивать-н-матч, чтобы получить результат, который вы хотите
  2. Мне нужно было получить текущую дату и отформатировать ее в YYYYMMDD чтобы сделать то, что мне просто нужно, чтобы DatePart как для текущей даты: date = DatePart("yyyy",Date) & DatePart("m",Date) & DatePart("d",Date)

Вот и все, надеюсь, это кому-нибудь поможет.

Ответ 6

Время показа в форме 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

Ответ 7

now возвращает текущую дату и время