Java:将unix时间(Long)舍入到该月的第一天

时间:2016-05-31 20:19:11

标签: java unix-timestamp

我正在尝试将unix时间缩短到Java的第一天,但​​没有成功。例如:

  

1314057600(星期二,2011年8月23日00:00:00 GMT)

  

1312156800(2011年8月1日星期一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?

1 个答案:

答案 0 :(得分:2)

这样的事情听起来像是可行的:

key.atStartOfDay().atZone(ZoneId.systemDefault()).toEpochSecond()

(假设你想要它在系统的默认时区)。