当我使用System.currentTimeMillis()
来衡量时间时,是否安全?
E.g。当发生时移(夏天 - >冬天时间)会产生错误吗?
答案 0 :(得分:5)
不,System.currentTimeMillis()
返回自Unix纪元(1970年1月1日午夜,UTC)午夜以来经过的毫秒数。这不完全取决于您当地的时区。
换句话说,如果你每秒呼叫一次,它总是增加大约1000(“约”只是由于时钟准确性和呼叫不可能确切相隔1秒)。如果您的本地时区更改其与UTC的偏移量,或者您甚至更改整个时区也无关紧要 - 这将无关紧要。
从理论上讲,闰秒会让所有这些变得更加棘手 - 但在实践中,大多数应用程序都可以通过概念性地将手指放在耳朵上并且说“我不在Leap Second先生的家中。”
答案 1 :(得分:1)
System.currentTimeMillis()
将返回自epoch (1/1/1970 00:00:00)以来的毫秒数。如何解释这些是一个完全不同的故事(夏季/冬季时间以及时区属于解释部分)。所以是的,这将是保存。