Contact Info

Crumbtrail

ActiveXperts.com » Administration » VBScript Collection » Computer Management » Dates and Times

Dates and Time Scripts

Converting WMI Date-Time Values
Determining Time Zone Offset from Greenwich Mean Time
Determining UTC Time
Determining the Local Time on a Computer
Retrieving Time Zone Information for a Computer

Converting WMI Date-Time Values


Demonstrates a method for converting the Universal Time Coordinate (UTC) values used by WMI to standard date-time values. The script retrieves the date that the operating system was installed, and passes that UTC value to a function named WMIDateStringToDate. This function converts the UTC value (such as 20011029113047.000000-480) to a standard date-time value (such as 10/29/200111:30:47 AM).
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") 
For Each strOS in objOS
    dtmInstallDate = strOS.InstallDate
    strReturn = WMIDateStringToDate(dtmInstallDate)
    Wscript.Echo strReturn 
Next
 
Function WMIDateStringToDate(dtmInstallDate)
    WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _
        Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _
            & " " & Mid (dtmInstallDate, 9, 2) & ":" & _
                Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, _
                    13, 2))
End Function

Determining Time Zone Offset from Greenwich Mean Time


Determines the difference (in minutes) between the time zone in use on the specified computer and Greenwich Mean Time. The time zone offset can be extremely useful in WMI scripts that need to work with date-time values.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTimeZone = objWMIService.ExecQuery("Select * from Win32_TimeZone")
 
For Each objTimeZone in colTimeZone
    Wscript.Echo "Offset: "& objTimeZone.Bias 
Next

Determining UTC Time


Reports the Universal Time Coordinate (UTC) time on a computer.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_UTCTime")
For Each objItem in colItems
    Wscript.Echo "Day: " & objItem.Day
    Wscript.Echo "Day Of the Week: " & objItem.DayOfWeek
    Wscript.Echo "Hour: " & objItem.Hour
    Wscript.Echo "Milliseconds: " & objItem.Milliseconds
    Wscript.Echo "Minute: " & objItem.Minute
    Wscript.Echo "Month: " & objItem.Month
    Wscript.Echo "Quarter: " & objItem.Quarter
    Wscript.Echo "Second: " & objItem.Second
    Wscript.Echo "Week In the Month: " & objItem.WeekInMonth
    Wscript.Echo "Year: " & objItem.Year
Next

Determining the Local Time on a Computer


Returns information about the local time configured on a computer.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") 
For Each strOS in objOS
    dtmInstallDate = strOS.InstallDate
    strReturn = WMIDateStringToDate(dtmInstallDate)
    Wscript.Echo strReturn 
Next
 
Function WMIDateStringToDate(dtmInstallDate)
    WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _
        Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _
            & " " & Mid (dtmInstallDate, 9, 2) & ":" & _
                Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, _
                    13, 2))
End Function

Retrieving Time Zone Information for a Computer


Retrieve information about the time zone configured on a computer.
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_TimeZone")
For Each objItem in colItems
    Wscript.Echo "Bias: " & objItem.Bias
    Wscript.Echo "Caption: " & objItem.Caption
    Wscript.Echo "Daylight Bias: " & objItem.DaylightBias
    Wscript.Echo "Daylight Day: " & objItem.DaylightDay
    Wscript.Echo "Daylight Day Of Week: " & objItem.DaylightDayOfWeek
    Wscript.Echo "Daylight Hour: " & objItem.DaylightHour
    Wscript.Echo "Daylight Millisecond: " & objItem.DaylightMillisecond
    Wscript.Echo "Daylight Minute: " & objItem.DaylightMinute
    Wscript.Echo "Daylight Month: " & objItem.DaylightMonth
    Wscript.Echo "Daylight Name: " & objItem.DaylightName
    Wscript.Echo "Daylight Second: " & objItem.DaylightSecond
    Wscript.Echo "Daylight Year: " & objItem.DaylightYear
    Wscript.Echo "Description: " & objItem.Description
    Wscript.Echo "Setting ID: " & objItem.SettingID
    Wscript.Echo "Standard Bias: " & objItem.StandardBias
    Wscript.Echo "Standard Day: " & objItem.StandardDay
    Wscript.Echo "Standard Day Of Week: " & objItem.StandardDayOfWeek
    Wscript.Echo "Standard Hour: " & objItem.StandardHour
    Wscript.Echo "Standard Millisecond: " & objItem.StandardMillisecond
    Wscript.Echo "Standard Minute: " & objItem.StandardMinute
    Wscript.Echo "Standard Month: " & objItem.StandardMonth
    Wscript.Echo "Standard Name: " & objItem.StandardName
    Wscript.Echo "Standard Second: " & objItem.StandardSecond
    Wscript.Echo "Standard Year: " & objItem.StandardYear
    Wscript.Echo
Next