这个时间价值的格式是什么?

时间:2009-08-29 13:47:19

标签: c# .net datetime wmi wql

我有一个WMI查询,以此格式指定时间'20090219000000.000000 + 480'

有人可以告诉我这是什么格式,.NET是否有任何内置功能可以使用它?

修改

此时间值来自我找到的示例查询。我不知道用什么时间来生成它。我只需要能够将时间值转换为这种格式。

编辑2

我发现这个时间是CIM_DATETIME格式。

5 个答案:

答案 0 :(得分:20)

正如其他人所说,字符串是DATETIME MOF data type的一个例子。它是一个固定长度的字符串,您可以找到有关其结构here的详细信息。 .Net使用System.Management namespace来访问WMI,其中一个类是ManagementDateTimeConverter类,这有助于使用WMI日期时间值。

答案 1 :(得分:16)

这看起来像没有任何分隔符的标准日期时间字符串:

'20090219000000.000000 + 480'

'yyyyMMddhhmmss.ffffff + 480'

yyyy - 四位数的年份。
MM - 数字月份。单位数月份具有前导零 dd - 月份的日期。单位数天数为零 ...... - 12小时制的小时。单位数小时数为零。 (这也可能是HH,这是24小时制的小时,单位数小时的前导零。)
毫米 - 分钟。单位数分钟有一个前导零 ffffff - 六位精度的秒数。

“+ 480”很可能是时区指标,虽然不是标准指标。通常,时区表示为UTC的小时(或小时和分钟)。这可能只是几分钟。因此,没有标准的格式说明符。

.NET中的DateTime类是您用来处理此值的方法。但是,在将剩余的字符串解析为实际的DateTime变量之前,您可能希望关闭“+480”部分。然后,您可以将其调整到正确的时区或提前执行时区转换(从分钟到小时/分钟),并将“+480”更改为正确的时区表示,然后将整个内容传递给DateTime.Parse。

答案 2 :(得分:3)

看看这个link。只是通过查看我会说它的格式为yyyyMMddhhmmss。[一大堆'f'字符]。

答案 3 :(得分:1)

如果你告诉我们它代表的日期会有所帮助。它在2009年开始表明它可能是YYYYMMDDHHMMSS.FFFFFF + TZ

(F =秒的分数,TZ与UTC的分钟差异,所以这里是6小时)

答案 4 :(得分:1)

您可以使用DateTime.ParseExact-Methode(String,String,IFormatProvider,DateTimeStyles)解析它

格式字符串为“yyyyMMddHHmmss.ffffffzzz”