System.out.println(new Date());
Thu Feb 23 04:57:57 ACT 2012
メインメソッドで実行しています。私のシステムの現在時刻はPKTです。しかしそれは私にACT時間を与えている。java.util.Dateが私に間違った時間を与えているのはなぜですか?
正しいシステムの時間を取得するには?
System.out.println(new Date());
Thu Feb 23 04:57:57 ACT 2012
メインメソッドで実行しています。私のシステムの現在時刻はPKTです。しかしそれは私にACT時間を与えている。java.util.Dateが私に間違った時間を与えているのはなぜですか?
正しいシステムの時間を取得するには?
問題は、タイムゾーン、ない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を実行しているかについて何かありますか?間違ったタイムゾーンのような疑わしい環境変数はありますか?
ます。また、時間帯を決定する際に使用されている以下のシステムプロパティ、プリントアウトすることがあります:
user.timezone
user.country
java.home
(前は、デフォルトのタイムゾーンを取得し、それらを印刷する - user.timezone
は一部として設定されていますそれは以前に設定されていない場合、それをフェッチする。)
static {
TimeZone.setDefault(anotherTimeZone);
}
これは、メインであっても、この種の動作を引き起こします。
しかし、それはどのように動作するのですか? TimeZoneをどこか別のクラスに宣言する必要がありますか? – Tony
java.util.Dateはシステム日付を示します。システム時間UTCをGMTに変更します。
Strange。私はこのプログラムを実行し、それは私にAcre Time America/Rio_Brancoを与えます。私の窓の時間はUTC + 5です。私はそれがなぜこれを考えるのかを見なければならない。 –
また、2人が間違った時間を取得しており、1.6.13バージョンがあります。 1.6.26が正しいとしている人としてはどこにいますか。 –
私は以下の値を得ています。聖なる牛。私のウィンドウの設定は無視されます。 user.timezone = America/Rio_Branco user.country = US java.home = C:\ Program Files \ Java \ jdk1.6.0 \ jre –