帳票が出力された時間を日本時間でサーバ上に持っているのですが、

それを、現地時間に変換したいです。
例えば、ニューヨークの人がログインした時、
.NETの関数か何かで、変換したい時刻と、地名を引数として、
その地の時間(サマータイムも加味)が持ってこれるというのがあれば、
実現できると思うのですが、そんな関数あるのでしょうか・・・。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2009/07/31 10:15:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答5件)

id:bg5551 No.1

回答回数1184ベストアンサー獲得回数80

ポイント23pt

関数を使わなくても、時差分を足したり引いたりしてあげれば

よいのではないですか。

場所が特定されていればですけど。

id:degucho No.2

回答回数281ベストアンサー獲得回数75

ポイント23pt

ややこしいですがこのへんと使えばいけると思います

http://dobon.net/vb/dotnet/system/timezone.html

http://msdn.microsoft.com/ja-jp/library/bb396326.aspx

id:yofukaci No.3

回答回数306ベストアンサー獲得回数10

ポイント22pt

こんにちは、stepwgn24zさん。

.NETの関数には用意されていないので、自分で作る必要があります。

Time Zoneツールで時差を手早く計算する

http://www.atmarkit.co.jp/fwin2k/win2ktips/794timezone/timezone....

id:pahoo No.4

回答回数5960ベストアンサー獲得回数633

ポイント22pt

自分で関数を用意する必要があります。


Windowsをインストールするときにタイムゾーンを指定しますよね。

世界各地のタイムゾーン情報そのものはデータとして保持されており、「コンピュータ上に存在するタイム ゾーンを列挙する方法」によって取り出すことができます。

このデータを使って計算すればいいでしょう。

id:ardarim No.5

回答回数897ベストアンサー獲得回数145

ポイント10pt

.NET 3.5以降では、System.TimeZoneInfoオブジェクトを使って変換することができます。

TimeZoneInfo.FindSystemTimeZoneByIdメソッドで、変換元(日本)と、変換先(現地)のタイムゾーンを取得した上で、ConvertTime メソッド (DateTime, TimeZoneInfo, TimeZoneInfo)を使うことでタイムゾーン変換を行うことができます。


TimeZoneInfo.FindSystemTimeZoneByIdメソッドは、地名を含む厳密なタイムゾーン名しか受け付けませんので、地名から緩くタイムゾーンを検索する場合は解説にあるようにGetSystemTimeZonesですべてのタイムゾーンのコレクションを取得して、この中から地名を含むタイムゾーンを探す必要があります。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません