FILETIME構造体 → System::DateTime 変換

DateTimeのコンストラクタで64bit intを設定できるので、それを利用する。

ただし、分解能は100nsで同じだが起点時刻がFILETIMEの西暦1601年に対して、
DateTimeは西暦1年なので、その分を補正する必要がある。

FILETIME stFileTime;
System::DateTime^ pcDataTime;

// ポインタキャストで64bit intに変換する。
// ついでに1600年分補正する
pcDataTime = System::DateTime( *((INT64*)&stFileTime) ).AddYears( 1600 );

コメントを残す

メールアドレスが公開されることはありません。