回答編集履歴
1
Dateにはタイムゾーンが直接影響はしないので修正
test
CHANGED
@@ -1,21 +1,17 @@
|
|
1
|
-
|
1
|
+
開発環境は日本時間GMT+9がタイムゾーンとなっていて、本番環境はGMT+0、つまり世界標準時なのでしょう。だから9時間前の時刻に見える、というわけです。直したいのであればコードでTimeZoneクラスのデフォルトタイムゾーンを日本時間にしてしまうのが早いでしょう。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
5
|
```Java
|
6
6
|
|
7
|
-
public static void main(String[] args) {
|
8
|
-
|
9
|
-
|
7
|
+
TimeZone.setDefault(TimeZone.getTimeZone("GMT+9"));
|
10
|
-
|
11
|
-
Date dat = new Date();
|
12
|
-
|
13
|
-
Calendar cal=Calendar.getInstance();
|
14
|
-
|
15
|
-
cal.setTime(dat);
|
16
|
-
|
17
|
-
System.out.println(cal.getTime());
|
18
|
-
|
19
|
-
}
|
20
8
|
|
21
9
|
```
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
`Date`型の数値自体はタイムゾーンの影響を受けませんが、`Date#toString`による出力はタイムゾーンの影響を受けるので注意が必要です。タイムゾーンの影響後の時刻等を取得するには`Calendar#get`等を使用する必要があります。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
※指摘によりDate型へタイムゾーンの影響のくだりを削除
|