に依存して私が突然、各時間帯ごとに異なるた結果、実験 たjava.sql.Timestamp#のvalueOf結果は、デフォルトのタイムゾーン
for (String tz: TimeZone.getAvailableIDs()) {
TimeZone.setDefault(TimeZone.getTimeZone(tz));
timestamp = Timestamp.valueOf("1970-01-01 00:00:00.000");
System.out.println(tz + " - " + timestamp.getTime());
}
作りました。これの背後にある論理は何ですか?常にタイムスタンプはタイムゾーンに依存しないと考えていました。
' "1970-01-01 00:00:00.000"' _some_の文脈で解釈されなければなりませんでしたこれはデフォルトのタイムゾーンを使用します。あなたはそれがちょうどUTCを使うと思いましたか? – GriffeyDog
@GriffeyDogええ、問題は、日付文字列がDBから来て、UTC日付として扱われることです。 – kilonet
'String'はタイムゾーンを持っていません。 'String'を' Timestamp'に変換するには、タイムゾーンを適用する必要があります。 'valueOf'はデフォルトのタイムゾーンを使用して' String'から 'Timestamp'への変換を行います。 – GriffeyDog