実行中のアプリがクラッシュし、いつ発生したか知りたいと思ったので、Windowsイベントビューアを開いてエントリを探しました。エントリを見つけたところ、エントリの詳細の1つが次のようになっていることに気付きました。
Faulting application start time: 0x01ccfe1e3e206d42
アプリの実行時間も知りたかったので、かっこいいと思いました。その16進文字列を解読し、日付と時刻に変換するにはどうすればよいですか?
Powershellでは、次のコマンドを発行できます。
get-date 0x01ccfe1e3e206d42
0x01ccfe1e3e206d42をイベントログで見つけた値に置き換えます。
または、イベントプロパティの[詳細]タブに切り替えることもできます。ここには、人間が読める形式のCreationTimeがあります。例えば。 2012-01-12T13:33:38.171Z
Powershellで、次のコマンドを発行し、16進シーケンスを置き換えます。
[datetime]::FromFileTime(0x01ccfe1e3e206d42)
9 March 2012, 19:58:33
答えは現地時間で、イベントビューアの時刻と一致します(ここフィンランドでは、3月のUTCから2時間東にあります)。 UTC時間で表示するには、メソッド名にUTC
を追加します。
[datetime]::FromFileTimeUTC(0x01ccfe1e3e206d42)
9 March 2012, 17:58:33