【发布时间】:2016-11-17 06:28:39
【问题描述】:
编辑:
假设我想要 Unix 时间戳的日期为 11.11.2016。
目前我只是使用
final int start = (int) ((System.currentTimeMillis() - 24 * 60 * 60 * 1000 * 5) / 1000L);
2016 年 11 月 10 日是
final int start = (int) ((System.currentTimeMillis() - 24 * 60 * 60 * 1000 * 6) / 1000L);
但它看起来很基本:)
是否有更好的解决方案?我在 Date 和 LocalTime 中找不到任何函数。
谢谢!
【问题讨论】:
-
这里有一个基本的类型不匹配:
10.05.2016是一天的周期;一个unix时间戳大致是一个瞬间(实际上,它是一个秒长的时间段)。您不能在不指定 1) 时区的情况下将10.05.2016转换为 unix 时间戳; 2) 一天中的某个时间。 -
@PowerFlower 请编辑您的问题和标题以澄清。几乎可以肯定这是重复的,因为我们有数千个关于在 Java 中处理日期时间的现有问题和答案。请在发布前搜索,如果重复,请关闭/删除您的问题。
-
日历日期不是 unix 时间戳。两个完全不同的概念!虽然您可以将
Instant转换为自 Unix 纪元以来经过的秒数的 long 值,但您可以使用其方法 toEpochDay 将LocalDate转换为 long