WMI有自己的日期和时间格式,该格式与代码页无关
WMI用于表示时间刻度的格式CIM_DATETIME:yyyymmddHHMMSS.mmmmmmsUUU
其中:yyyy年 mm月 dd日 HH小时 MM分 SS秒 mmmmmm微秒
s为+或-,分别代表东时区和西时区
UUU表示相对于UTC标准时间,相差多少分钟
比如东8区,相对于UTC标准时间,相差8小时,就是480分钟,记作+480。西5区则记作-300
WMI还有用于表示时间长度的格式Interval Format:ddddddddHHMMSS.mmmmmm:000
其中:dddddddd天数 HH小时 MM分 SS秒 mmmmmm微秒
最后的:000是固定格式
WMI支持VT_DATE格式,这是本地时间,与代码页相关
该格式是按照"控制面板"→"区域和语言选项"里设置的"短日期 时间"显示的
vbs里的Now函数返回的也是VT_DATE格式
如果你在控制面板里改变了区域设置,那么VT_DATE格式也会随之改变
FILENAME格式,表示一个时间长度值,精确到0.0000001秒=0.1微秒=100纳秒
起始时间,微软定为:1601-01-01 00:00:00
从起始时间到指定时间的长度
北京时间2000年1月2日 18:30:00
按CIM_DATETIME格式记作20000102183000.000000+480
按VT_DATE格式显示为2000-1-2 18:30:00- Set objSWbemDateTime = CreateObject("WbemScripting.SWbemDateTime")
-
- objSWbemDateTime.SetVarDate("2000-1-2 18:30:07") '按VT_DATE格式输入时间
- 'objSWbemDateTime.SetFileTime("125913114070000000") '按FILENAME格式输入时间
-
- Msgbox "按VT_DATE格式输入本地时间:2000-1-2 18:30:07" & vbCrLf & vbCrLf & _
- "输出:" & vbCrLf & _
- "FILENAME格式本地时间" & vbTab & objSWbemDateTime.GetFileTime() & vbCrLf & _
- "FILENAME格式UTC时间" & vbTab & objSWbemDateTime.GetFileTime(False) & vbCrLf & _
- "VT_DATE格式本地时间" & vbTab & objSWbemDateTime.GetVarDate() & vbCrLf & _
- "VT_DATE格式UTC时间" & vbTab & objSWbemDateTime.GetVarDate(False) & vbCrLf & _
- "CIM_DATETIME格式" & vbTab & objSWbemDateTime.Value
复制代码
|