.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
ファイルやディレクトリのタイムスタンプを取得/設定するには?
コンピュータの現在時刻を設定するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH