.NET TIPS

UTC(世界協定時)を取得するには?[C#、VB]

デジタルアドバンテージ 一色 政彦
2008/06/12

 UTC(Coordinated Universal Time、世界協定時)とは世界共通基準とされる時間である。例えばインターネットを活用したグローバルなアプリケーションであれば、世界各国のローカル時刻で日時を管理すると各国の時差の影響を受けてしまう。このような問題を避けるには、日時をUTCで管理する必要がある。本TIPSでは、このような場面で使えるUTCの取得方法について紹介する。

UTC(世界協定時)の取得方法

 現在のローカル時刻を取得するには、DateTimeクラス(System名前空間)の静的プロパティであるNowを使えばよいが、UTCを取得したい場合には、同じく静的プロパティのUtcNowを使えばよい。これらのプロパティを呼び出すと、DateTimeオブジェクトが取得できる。このオブジェクトに日時が格納されている。

 例えば次のコードでは、UTCの日時を取得し、そのToStringメソッドを呼び出して、日時を文字列化している。

// 現在のローカル時刻を取得する
DateTime localNow = DateTime.Now;
Console.WriteLine(localNow.ToString());
// 出力例:2008/06/12 10:44:50

// 現在のUTC時刻を取得する
DateTime utcNow = DateTime.UtcNow;
Console.WriteLine(utcNow.ToString());
// 出力例:2008/06/12 1:44:50
' 現在のローカル時刻を取得する
Dim localNow As DateTime = DateTime.Now
Console.WriteLine(localNow.ToString())
' 出力例:2008/06/12 10:44:50

' 現在のUTC時刻を取得する
Dim utcNow As DateTime = DateTime.UtcNow
Console.WriteLine(utcNow.ToString())
' 出力例:2008/06/12 1:44:50
DateTime.UtcNowプロパティを使うサンプル・コード(上:C#、下:VB)

ローカル時刻からUTC(世界協定時刻)への変換方法

 また、すでにDateTimeオブジェクトとして取得しているローカル時刻を、UTCに変換することもできる。これには、DateTimeオブジェクトのToUniversalTimeメソッドを呼び出せばよい。

 次のコードは実際にローカル時刻をUTCに変換する例だ。

// ローカル時刻をUTC時刻に変更する
DateTime localNow = DateTime.Now;
Console.WriteLine(localNow.ToString());
// 出力例:2008/06/12 10:44:50
DateTime toUtc = localNow.ToUniversalTime();
Console.WriteLine(toUtc.ToString());
// 出力例:2008/06/12 1:44:50

// UTC時刻をローカル時刻に変更する
DateTime utcNow = DateTime.UtcNow;
Console.WriteLine(utcNow.ToString());
// 出力例:2008/06/12 1:44:50
DateTime toLocal = utcNow.ToLocalTime();
Console.WriteLine(toLocal.ToString());
// 出力例:2008/06/12 10:44:50
' ローカル時刻をUTC時刻に変更する
Dim localNow As DateTime = DateTime.Now
Console.WriteLine(localNow.ToString())
' 出力例:2008/06/12 10:44:50
Dim toUtc As DateTime = localNow.ToUniversalTime()
Console.WriteLine(toUtc.ToString())
' 出力例:2008/06/12 1:44:50

' UTC時刻をローカル時刻に変更する
Dim utcNow As DateTime = DateTime.UtcNow
Console.WriteLine(utcNow.ToString())
' 出力例:2008/06/12 1:44:50
Dim toLocal As DateTime = utcNow.ToLocalTime()
Console.WriteLine(toLocal.ToString())
' 出力例:2008/06/12 10:44:50
ローカル時刻をUTCに変換するサンプル・コード(上:C#、下:VB)

 なお、エンド・ユーザーにとってはUTCの時刻よりも(日常で使っている)ローカル時刻の方が分かりやすい。このような場合には、UTCをローカル時刻に変換することができる。これには、上記のコードでも示しているように、DateTimeオブジェクトのToLocalTimeメソッドを呼び出せばよい。End of Article

カテゴリ:クラス・ライブラリ 処理対象:日付と時刻
使用ライブラリ:DateTimeクラス(System名前空間)

この記事と関連性の高い別の.NET TIPS
コンピュータの現在時刻を設定するには?
ファイルやディレクトリのタイムスタンプを取得/設定するには?
DateTimeとDateTimeOffsetの違いとは?[C#、VB]
UNIX時間を求めるには?
日付や時刻の文字列をDateTime/DateTimeOffsetオブジェクトに変換するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH