1つだけ確認したい。
Windowsマシン(デスクトップシステムまたはWindows Phoneなどのデバイス)で、ユーザーが表示時間を変更すると(タイムゾーンを調整するか、コントロールパネルで日付/時刻を変更するだけ)、SYSTEMTIME
またはも変更されFILETIME
ます。ユーザーが表示時間を変更するとどうなりますか?
ありがとうございました
1つだけ確認したい。
Windowsマシン(デスクトップシステムまたはWindows Phoneなどのデバイス)で、ユーザーが表示時間を変更すると(タイムゾーンを調整するか、コントロールパネルで日付/時刻を変更するだけ)、SYSTEMTIME
またはも変更されFILETIME
ます。ユーザーが表示時間を変更するとどうなりますか?
ありがとうございました
まず、SYSTEMTIMEとFILETIMEは単なるデータ構造です。それらは意味のある方法で「変化」しません。
SYSTEMTIMEを返す関数には、GetSystemTime()とGetLocalTime()の2つがあります。1つ目はUTC時刻(おおよそイギリスのグリニッジの時刻)を返し、2つ目はローカルタイムゾーンの時刻を返します。タイムゾーンを変更するだけで、GetLocalTime()の出力は変更されますが、GetSystemTime()の出力は変更されません。タイムゾーンではなく時間を変更すると、両方が変更されます。
タイムゾーンと現在の時刻の両方を正確に変更してタイムゾーンの違いを補正する非常に工夫された例では、GetLocalTime()の値は残りますが、GetSystemTime()は変更されます。
そして、それはどちらかの関数の出力がミリ秒ごとに変化する傾向があるという事実を無視しています。上記の段落の「変更」とは、「通常の時間の経過から外れる」ことを意味します。
FILETIMEを返す関数が1つあります。それは、GetSystemTimeAsFileTime()です。その出力は、当然のことながら、GetSystemTime()の出力に従います。
私の知る限り、特に何かをチェックしない限り、「表示時間」は常にシステムがデスクトップに返すものです。これはモバイル環境では異なる場合があります。これは、時間がはるかに重要であり、より安定したチェック手段があるためです。