2014-04-07 36 views
6

Benim java programımın geçerli yerel saat dilimi ile olayları günlüğe kaydetmesi gerekiyor. Sorun, kullanıcının saat dilimini değiştirme yeteneğine sahip olmasıdır, ancak sistem saat dilimi değiştirilse bile, java programı "eski" saat dilimi ile çalışmaya devam eder.
Çalışma zamanında Java zaman dilimi değişikliği

Java VM varsayılan olarak java programı çalıştırılır dilimini ayarlar şüpheli (Timezone.setDefault() için javadoc "o VM ilk başladığında başlangıçta sahip olduğu değere varsayılan sıfırlayın." Diyor)

Bu doğru mu? Java, varsayılan saat dilimini yeni sistem saat dilimine göre güncelleyemiyor ve bu nedenle sanal makinenin yeniden başlatılmasını gerektiriyor mu?

+0

java 7'de, 'setDefault' bir bölge argümanı alır ve yalnızca bir null değerini geçerseniz orijinaline sıfırlar:" Zon sıfır ise, varsayılan olarak VM ilk başlatıldığında varsayılan değere sıfırlayın. " [API burada] (http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html#setDefault (java.util.TimeZone)) – azurefrog

cevap

1

Saat dilimini neden bildirilen bir değişkene ayarlamıyorsunuz? Varsayılan zaman dilimi olarak başlangıç ​​durumuna getirin, kullanıcı değiştirirse, değişkene kaydedin. Değişkenleri günlüğünüzde arayın.

İlgili konular