<分区>
有人能解释一下 Instant.getEpochSecond 命名背后的基本原理吗?与 Instant.toEpochMilli ?我能想到的唯一原因是瞬间的内部表示是相对于纪元的秒和相对于那一秒的纳秒,而毫秒是根据这两个值计算的。
但是为什么要让这样的实现细节泄露到新的 API 中呢?
<分区>
有人能解释一下 Instant.getEpochSecond 命名背后的基本原理吗?与 Instant.toEpochMilli ?我能想到的唯一原因是瞬间的内部表示是相对于纪元的秒和相对于那一秒的纳秒,而毫秒是根据这两个值计算的。
但是为什么要让这样的实现细节泄露到新的 API 中呢?
最佳答案
我不得不猜测,但我同意你的看法:
getEpochSecond()
表示一个简单的 getter,即它只返回存储在该实例中的值toEpochMilli()
会计算它的返回值,很像 toString()
不会返回存储的字符串,而是在运行时构建调用方法的时间该约定实际上记录在此处:http://docs.oracle.com/javase/tutorial/datetime/overview/naming.html
此约定的原因可能与 JavaBeans 规范有关,即 epochSecond
将是 Instant
的(只读)属性,而 epochMilli
是不同的表示,但不是属性。
关于java - Instant.getEpochSecond 与 Instant.toEpochMilli 背后的基本原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25427255/