當我用System.currentTimeMillis()
來測量時間,它是安全的嗎?System.currentTimeMillis測量時間
E.g.當發生時移時(夏季 - >冬季),這會產生一個錯誤嗎?
當我用System.currentTimeMillis()
來測量時間,它是安全的嗎?System.currentTimeMillis測量時間
E.g.當發生時移時(夏季 - >冬季),這會產生一個錯誤嗎?
否,System.currentTimeMillis()
返回自Unix紀元(UTC 1970年1月1日開始的午夜)起經過的毫秒數。這不是而是完全取決於您當地的時區。
換句話說,如果你每秒一次調用它,它會總是約1000增加(「關於」僅僅是由於時鐘精度和通話是不可能被正是間隔1秒) 。無論您的本地時區是否更改其與UTC的偏移量,或者甚至更改了整個時區,都無關緊要。
從理論上講,閏秒使得所有這一切變得更加棘手 - 但實際上大多數應用程序可以通過理論上將他們的手指伸入耳朵並說「我不在Leap Second先生家中」。
好的,非常感謝你 – matthias 2014-09-10 13:01:25
System.currentTimeMillis()
將返回自epoch (1/1/1970 00:00:00)以來的毫秒數。這些解釋如何是一個完全不同的故事(夏季/冬季以及時區屬於解釋部分)。所以是的,這將是保存。
你的意思是白天節省時間? AFAIK,它不會影響。 – blackSmith 2014-09-10 13:00:27
閱讀[文檔!](http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#currentTimeMillis%28%29) – 2014-09-10 13:01:07