DateTimeには、時刻がローカル時刻とUTCのどちらを表すのかを判別するためのプロパティKindが用意されています。
DateTime.Kindに設定される値とその意味は次のようになります。
DateTimeKind | 意味 |
---|---|
DateTimeKind.Local | DateTimeの時刻はローカル時刻を表す |
DateTimeKind.Utc | DateTimeの時刻はUTCでの時刻を表す |
DateTimeKind.Unspecified | 時刻の種類が特に指定されていない、あるいはどちらでもない |
DateTimeで時刻の変換を行う際にはこのプロパティの値が参照され、例えばローカル時刻またはUTCへの変換を行うToUniversalTime・ToLocalTimeメソッドでは、このKindプロパティの値に応じて適切な時刻に値が変換されます。
DateTimeのコンストラクタでは、時刻がローカル時刻・UTCのどちらを表すのか明示するためにDateTimeKindを指定することが出来ます。 また、DateTime.Nowプロパティで取得できる現在日時はDateTimeKind.Local、DateTime.UtcNowプロパティではDateTimeKind.Utcとなります。