DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

現在の日時を取得する

ローカル時刻をDateTimeオブジェクトで取得する

コンピュータ上の現在の日時をローカル時刻(現地時刻、現地時間、地方標準時)で取得するには、DateTime.Nowプロパティを使います。DateTimeオブジェクトとして取得できます。

また、今日の日付を取得するには、DateTime.Todayプロパティを使います。この時取得できるDateTimeオブジェクトは、DateTime.Nowプロパティで取得できるDateTimeの時刻が「00:00:00」になったものです。

.NET Framework 2.0以降では、これらのプロパティで取得できるDateTimeオブジェクトのKindプロパティはLocalになります。

VB.NET
コードを隠すコードを選択
'現在の時間を現地時刻で取得する
System.Console.WriteLine(System.DateTime.Now)
'Kindプロパティを確認する
System.Console.WriteLine(System.DateTime.Now.Kind)
'Local

'今日の日付を現地時刻で取得する
System.Console.WriteLine(System.DateTime.Today)
C#
コードを隠すコードを選択
//現在の時間を現地時刻で取得する
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)をDateTimeオブジェクトで取得する

コンピュータ上の現在の日時を世界協定時刻(協定世界時、UTC、Universal Time, Coordinated)で取得するには、DateTime.UtcNowプロパティを使用します。こちらもDateTimeオブジェクトで取得できます。

.NET Framework 2.0以降では、これらのプロパティで取得できるDateTimeオブジェクトのKindプロパティはUtcになります。

ちなみに、DateTime.Todayプロパティのように今日の日付をUTCで取得するには、「DateTime.UtcNow.Date」とします。

VB.NET
コードを隠すコードを選択
'現在の時間を世界協定時刻(UTC)で取得する
System.Console.WriteLine(System.DateTime.UtcNow)
'Kindプロパティを確認する
System.Console.WriteLine(System.DateTime.UtcNow.Kind)
'Utc
C#
コードを隠すコードを選択
//現在の時間を世界協定時刻(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プロパティを使うこともできます。

DateTimeOffsetオブジェクトで取得する

.NET Framework 2.0 SP1から、DateTimeOffset構造体が追加されました。DateTimeOffsetは、DateTimeの情報の他に、その日時とUTCとの時間差(オフセット)をOffsetプロパティに保持しています。DateTimeOffsetについて詳しくは、「DateTimeの代わりにDateTimeOffsetを使用する」で説明しています。

現在のローカル時刻をDateTimeOffsetオブジェクトで取得するには、DateTimeOffset.Nowプロパティを使います。この時Offsetプロパティは、現在のローカルコンピュータのタイムゾーンとUTCとの時差になります。

VB.NET
コードを隠すコードを選択
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
C#
コードを隠すコードを選択
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になります。

VB.NET
コードを隠すコードを選択
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
C#
コードを隠すコードを選択
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
  • 履歴:
  • 2011/10/31 「DateTimeOffsetオブジェクトで取得する」を追加など。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。