System.out.println(new Date());
Thu Feb 23 04:57:57 ACT 2012
mainメソッドで実行しています。そして、私のシステムの現在の時刻はPKTです。しかし、それは私にACT時間を与えています。
何か案が?正しいシステムの時間を取得する方法は?
問題は、Date
値自体ではなく、タイムゾーンにあるようです。したがって、現在の日付を出力する代わりに、次のようなものを使用して現在のタイムゾーンを出力します。
import java.util.TimeZone ;
public class Test {
public static void main(String[] args) throws Exception {
TimeZone zone = TimeZone.getDefault();
System.out.println(zone.getDisplayName());
System.out.println(zone.getID());
}
}
たとえば、私にとっては次のように表示されます。
Greenwich Mean Time
Europe/London
Javaがデフォルトのタイムゾーンであると考えるものについての詳細を知ったら、Javaがそれを考える理由を探し始めることができます。非標準であるJavaの実行方法について何かありますか?不審なタイムゾーンのように見える環境変数はありますか?
また、タイムゾーンを決定するときに使用される次のシステムプロパティを印刷することもできます。
user.timezone
user.country
java.home
(デフォルトのタイムゾーンを取得する前にそれらを印刷します- user.timezone
以前に設定されていなかった場合は、それをフェッチする一部として設定されます。)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加