Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

ダウンロードデータ作成について

java初心者です。
データのダウンロード機能を作成してます。
ダウンロードデータの作成から書き出し処理までをサーブレットで
行ってます。
ダウンロードデータには日付項目があり、yyyy/MM/dd HH:mm:ss形式で
出力しています。
そこで質問ですが、このダウンロード機能をリモートアクセスした時に
ダウンロードデータの日付をリモートアクセスしているクライアントの
タイムゾーンに合わせて時差を考慮したいと考えてます。

例)ダウンロードデータの日付項目に、2010/02/16 00:00:00 という
   データがあったとする。

   ローカル(日本)でダウンロードを実行した場合に
   2010/02/16 00:00:00 と出力されたとする。

   リモート(台湾)でダウンロードを実行した場合に
   時差が日本より-1時間なので、
   2010/02/15 24:00:00 と出力したい。

これを実現するためにはクライアントのタイムゾーンなどが必要になると考えてますが
良い方法が見つかりません。
わかりづらい説明ではありますが、方法などご存じの方がおられましたら回答願ます。

7

回答

79209

閲覧

7件の回答

評価

0

それ、何の意味が?
日本でダウンロード後に、台湾に行って開くと-1時間になるようにしたいの?
ってか、元データはどこのタイムゾーンなの?
日本のタイムゾーンで作られたデータなら、DL時に常に-9時間したものをダウンロードさせて、「ローカルのタイムゾーンにあわせて読んでね」ってすれば?

>   時差が日本より-1時間なので、
>   2010/02/15 24:00:00 と出力したい。

23:00:00の間違いですよね?

評価

0

GMTにするのに1票。

評価

0

UTCに一票。

評価

0

ワールドワイドなシステムなら、善良社員さんのいうようにタイムゾーン UTC を表記するのが良いでしょうね。

ただ、利用者の大半が日本人で、ほんの少数の人が海外から利用するのであれば、タイムゾーンとして JST または +0900 を表記するというのもアリだと思います。日本にいる人にとっては直感的に時間を読みやすいし、海外の人もローカルタイムへ変換できる要素を残しているので。

評価

0

NTPとうまく連携させればいけるような気もするが…
但し、アプリとの依存関係が出来てしまうけどね。

評価

0

回答くださいました皆様、ありがとうございます。
回答内容を参考にもう一度見直したいと思います。

追加で申し訳ありませんが、一点質問させてください。
UTC(協定世界時)をミリ秒であらわしたデータをyyyy/MM/dd HH:mm:ss形式に
変換するクラスや方法等ありましたら教えていただけないでしょうか。
SimpleDateFormatクラスやDateFormatクラスで変換行うと、実行環境の
地域別標準時間を考慮して変換を行ってしまいます。
ミリ秒の値をそのままyyyy/MM/dd HH:mm:ss形式に変換する方法を探してます。

評価

0

ミリ秒なら、そもそもUTCです。

Formatに、TimeZoneを設定してから変換しましょう。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。