|
.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メソッドを呼び出せばよい。
カテゴリ:クラス・ライブラリ 処理対象:日付と時刻
使用ライブラリ:DateTimeクラス(System名前空間)
|
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間