2014-04-07 25 views
6

Chương trình java của tôi cần ghi nhật ký sự kiện với múi giờ địa phương hiện tại. Vấn đề là, người dùng có khả năng thay đổi múi giờ, nhưng ngay cả khi múi giờ hệ thống bị thay đổi, chương trình java vẫn tiếp tục chạy với múi giờ "cũ".
Thay đổi múi giờ Java tại thời gian chạy

Tôi nghi ngờ rằng các máy ảo Java đặt như mặc định múi giờ khi chương trình java chạy (javadoc cho Timezone.setDefault() nói "thiết lập lại các mặc định với giá trị nó đã ban khi VM đầu tiên bắt đầu.")

Điều đó có đúng không? Java không thể cập nhật múi giờ mặc định thành múi giờ hệ thống mới và do đó yêu cầu khởi động lại VM?

+0

Trong java 7, 'setDefault' lấy đối số vùng và chỉ đặt lại thành giá trị ban đầu nếu bạn vượt qua trong giá trị rỗng:" Nếu vùng trống, hãy đặt lại giá trị mặc định thành giá trị ban đầu khi VM khởi động ". [API tại đây] (http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html#setDefault (java.util.TimeZone)) – azurefrog

Trả lời

1

Tại sao không đặt múi giờ thành biến được khai báo? Khởi tạo nó làm múi giờ mặc định, sau đó nếu người dùng thay đổi múi giờ, bạn lưu nó vào biến. Gọi biến trong nhật ký của bạn.

Các vấn đề liên quan