11

この形式「20090219000000.000000+480」で時間を指定する WMI クエリがあります。

誰かがこれがどのような形式であるかを教えてもらえますか?.NET にはそれを操作するための組み込み機能がありますか?

編集

この時間値は、私が見つけたサンプル クエリからのものです。それを生成するためにどの時間値が使用されたかはわかりません。時間値をこの形式に変換できる必要があります。

編集2

今回はCIM_DATETIME形式であることがわかりました。

4

5 に答える 5

21

他の人が示唆しているように、文字列はDATETIMEMOFデータ型の例です。これは固定長の文字列であり、その構造の詳細については、こちらをご覧ください。.NetはSystem.Management名前空間を使用してWMIにアクセスし、そのクラスの1つはManagementDateTimeConverterクラスであり、WMI日時値の操作を容易にします。

これをすべて使用する方法は次のとおりです。

var time_written = System.Management.ManagementDateTimeConverter.ToDateTime((string)result.GetPropertyValue("TimeWritten")); 
于 2009-08-30T11:46:59.443 に答える
17

これは、区切り記号のない標準の日時文字列のように見えます。

「20090219000000.000000+480」

「yyyyMMddhhmmss.ffffff+480」

yyyy - 4 桁の年。
MM - 月の数字。1 桁の月には先行ゼロがあります。
dd - 月の日。1 桁の日の先頭にはゼロが付きます。
hh - 12 時間制の時間。1 桁の時間には先行ゼロがあります。(これは、先行ゼロを持つ 1 桁の時間を持つ 24 時間制の時間である HH の場合もあります。)
mm - 分。1 桁の分には先行ゼロがあります。
ffffff - 6 桁の精度での秒の端数。

「+480」はタイムゾーン インジケーターである可能性が高いですが、標準的なものではありません。通常、タイムゾーンは UTC からの時間 (または時と分) で表されます。これはおそらく数分にすぎないようです。そのため、標準の書式指定子はありません。

.NET の DateTime クラスは、この値を操作するために使用するものです。ただし、残りの文字列を実際の DateTime 変数に解析する前に、「+480」の部分を削除することをお勧めします。次に、それを正しいタイムゾーンに調整するか、事前にタイムゾーン変換 (分から時間/分へ) を実行し、「+480」を正しいタイムゾーン表現に変更してから、すべてを DateTime.Parse に渡します。

于 2009-08-29T14:03:08.363 に答える
3

このリンクを見てください。見るだけで、yyyyMMddhhmmss.[「f」文字の全体] の形式であると言えます。

于 2009-08-29T13:54:50.430 に答える
1

それが表す日付を教えていただけると助かります。開始時の2009年は、YYYYMMDDHHMMSS.FFFFFF+TZである可能性があることを示唆しています

(F = 秒単位の分数、TZ は UTC との差 (分単位) であるため、ここでは 6 時間)

于 2009-08-29T13:56:59.133 に答える
1

これを DateTime.ParseExact-Methode (String, String, IFormatProvider, DateTimeStyles) で解析できます。

フォーマット文字列は「yyyyMMddHHmmss.ffffffzzz」です。

于 2009-08-29T14:04:10.310 に答える