Java:将 unix 时间(长整型)舍入到该月的第一天
Java: round unix time (Long) to first day of the month
我试图将 unix 时间四舍五入到 Java 中的月份的第一天,但没有成功。示例:
1314057600 (Tue, 23 Aug 2011 00:00:00 GMT)
至
1312156800 (Mon, 01 Aug 2011 00:00:00 GMT)
Unix 时间我正在从文件中读取并将其作为 Long 存储在变量中(变量名为 "valor")。
到目前为止,我已经能够用它创建一个 Java 时间戳
LocalDateTime timestamp = LocalDateTime.ofInstant(Instant.ofEpochSecond(valor), ZoneId.systemDefault());
并为月初创建新的时间戳:
LocalDate key = LocalDate.of(timestamp.getYear(), timestamp.getMonthValue(), 1);
如何将这个新的时间戳记为 Long?
像这样的东西听起来行得通:
key.atStartOfDay().atZone(ZoneId.systemDefault()).toEpochSecond()
(假设您希望它在系统的默认时区)。
我试图将 unix 时间四舍五入到 Java 中的月份的第一天,但没有成功。示例:
1314057600 (Tue, 23 Aug 2011 00:00:00 GMT)
至
1312156800 (Mon, 01 Aug 2011 00:00:00 GMT)
Unix 时间我正在从文件中读取并将其作为 Long 存储在变量中(变量名为 "valor")。 到目前为止,我已经能够用它创建一个 Java 时间戳
LocalDateTime timestamp = LocalDateTime.ofInstant(Instant.ofEpochSecond(valor), ZoneId.systemDefault());
并为月初创建新的时间戳:
LocalDate key = LocalDate.of(timestamp.getYear(), timestamp.getMonthValue(), 1);
如何将这个新的时间戳记为 Long?
像这样的东西听起来行得通:
key.atStartOfDay().atZone(ZoneId.systemDefault()).toEpochSecond()
(假设您希望它在系统的默认时区)。