java - Instant.getEpochSecond 与 Instant.toEpochMilli 背后的基本原理

标签 java java-time

<分区>

有人能解释一下 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/

相关文章:

java - 从命令行读取时将空元素插入到 ArrayList 中

java - 在 Android Eclipse 项目的 Assets 文件夹中拥有自己的数据库

Java setter 不会更改整数的值

java - 在 JDBC 中,何时使用时间、日期和时间戳

java - 如何用LocalDate查询LocalDateTime?

java - DateTimeFormatter 与 SimpleDateFormat 不兼容

Java时间: preserve date and time to other timezone

java - 如何创建 if 语句在同一语句中比较 boolean 值和字符串?

java - 确定 future 的时区转换

java-8 - 在 java 8 中将 LocalDateTime 转换为 java.sql.Date?