コンピュータ上の現在の日時をローカル時刻(現地時刻、現地時間、地方標準時)で取得するには、DateTime.Nowプロパティを使います。DateTimeオブジェクトとして取得できます。
また、今日の日付を取得するには、DateTime.Todayプロパティを使います。この時取得できるDateTimeオブジェクトは、DateTime.Nowプロパティで取得できるDateTimeの時刻が「00:00:00」になったものです。
.NET Framework 2.0以降では、これらのプロパティで取得できるDateTimeオブジェクトのKindプロパティはLocalになります。
'現在の時間を現地時刻で取得する System.Console.WriteLine(System.DateTime.Now) 'Kindプロパティを確認する System.Console.WriteLine(System.DateTime.Now.Kind) 'Local '今日の日付を現地時刻で取得する System.Console.WriteLine(System.DateTime.Today)
//現在の時間を現地時刻で取得する System.Console.WriteLine(System.DateTime.Now); //Kindプロパティを確認する System.Console.WriteLine(System.DateTime.Now.Kind); //Local //今日の日付を現地時刻で取得する System.Console.WriteLine(System.DateTime.Today);
補足:VB.NETでは、DateAndTimeモジュールのNowプロパティでも現在の日時を取得できます。また、現在の日付はTodayプロパティで、現在の時刻はTimeOfDayプロパティで取得できます。さらに、.NET Framework 2.0からは、My.Computer.Clock.LocalTimeプロパティでも取得できます。
コンピュータ上の現在の日時を世界協定時刻(協定世界時、UTC、Universal Time, Coordinated)で取得するには、DateTime.UtcNowプロパティを使用します。こちらもDateTimeオブジェクトで取得できます。
.NET Framework 2.0以降では、これらのプロパティで取得できるDateTimeオブジェクトのKindプロパティはUtcになります。
ちなみに、DateTime.Todayプロパティのように今日の日付をUTCで取得するには、「DateTime.UtcNow.Date」とします。
'現在の時間を世界協定時刻(UTC)で取得する System.Console.WriteLine(System.DateTime.UtcNow) 'Kindプロパティを確認する System.Console.WriteLine(System.DateTime.UtcNow.Kind) 'Utc
//現在の時間を世界協定時刻(UTC)で取得する System.Console.WriteLine(System.DateTime.UtcNow); //Kindプロパティを確認する System.Console.WriteLine(System.DateTime.UtcNow.Kind); //Utc
補足:.NET Framework 2.0以降のVB.NETでは、My.Computer.Clock.GmtTimeプロパティを使うこともできます。
.NET Framework 2.0 SP1から、DateTimeOffset構造体が追加されました。DateTimeOffsetは、DateTimeの情報の他に、その日時とUTCとの時間差(オフセット)をOffsetプロパティに保持しています。DateTimeOffsetについて詳しくは、「DateTimeの代わりにDateTimeOffsetを使用する」で説明しています。
現在のローカル時刻をDateTimeOffsetオブジェクトで取得するには、DateTimeOffset.Nowプロパティを使います。この時Offsetプロパティは、現在のローカルコンピュータのタイムゾーンとUTCとの時差になります。
System.Console.WriteLine(System.DateTimeOffset.Now) '2011/10/08 0:02:15 +09:00 'UTCとの時差を取得する System.Console.WriteLine(System.DateTimeOffset.Now.Offset) '09:00:00
System.Console.WriteLine(System.DateTimeOffset.Now); //2011/10/08 0:02:15 +09:00 //UTCとの時差を取得する System.Console.WriteLine(System.DateTimeOffset.Now.Offset); //09:00:00
現在のUTCをDateTimeOffsetオブジェクトで取得するには、DateTimeOffset.UtcNowプロパティを使います。この時Offsetプロパティは、0になります。
System.Console.WriteLine(System.DateTimeOffset.UtcNow) '2011/10/07 15:02:15 +00:00 'UTCとの時差を取得する System.Console.WriteLine(System.DateTimeOffset.UtcNow.Offset) '00:00:00
System.Console.WriteLine(System.DateTimeOffset.UtcNow); //2011/10/07 15:02:15 +00:00 //UTCとの時差を取得する System.Console.WriteLine(System.DateTimeOffset.UtcNow.Offset); //00:00:00
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。