【发布时间】:2016-05-31 20:19:11
【问题描述】:
我正在尝试在 Java 中将 unix 时间舍入到每月的第一天,但没有成功。示例:
1314057600(2011 年 8 月 23 日星期二 00:00:00 GMT)
到
1312156800(格林威治标准时间 2011 年 8 月 1 日星期一 00:00:00)
我从文件中读取并将其作为 Long 存储在变量(名为“valor”的变量)中的 unix 时间。 到目前为止,我已经能够用它创建一个 Java 时间戳
LocalDateTime timestamp = LocalDateTime.ofInstant(Instant.ofEpochSecond(valor), ZoneId.systemDefault());
并为月初创建一个新的时间戳:
LocalDate key = LocalDate.of(timestamp.getYear(), timestamp.getMonthValue(), 1);
如何将这个新的时间戳记为 Long?
【问题讨论】:
-
首先要考虑的是:您对哪个时区感兴趣?总是UTC?我假设是公历?
-
从较早的帖子中尝试 [this] (stackoverflow.com/a/21247526/442256)
-
在这种情况下时区并不重要,是公历。
-
@sfk 请注意,您链接的答案是关于 Joda 时间,而 OP 是在询问 Java 8 时间 API。
-
向下滚动@sfk 链接,有一些关于 Java 8 的信息。
标签: java unix-timestamp