LocalDateTime获取某一天零点时间戳
时间: 2023-06-28 14:16:22 浏览: 215
可以使用`LocalDateTime`和`ZoneOffset`来获取某一天零点的时间戳。具体的实现代码如下:
```java
LocalDateTime localDateTime = LocalDateTime.of(2021, 8, 18, 0, 0);
ZoneOffset zoneOffset = ZoneOffset.of("+8");
long timestamp = localDateTime.toInstant(zoneOffset).toEpochMilli();
```
其中,`LocalDateTime.of(2021, 8, 18, 0, 0)`表示创建一个`LocalDateTime`对象,表示2021年8月18日零点;`ZoneOffset.of("+8")`表示设置时区为东八区;`localDateTime.toInstant(zoneOffset).toEpochMilli()`表示将`LocalDateTime`对象转化为时间戳,即从1970年1月1日0时0分0秒到指定时间的毫秒数。
需要注意的是,上述代码中的时区设置是硬编码的,如果需要适应不同的时区,可以根据实际情况进行调整。
相关问题
java 使用 LocalDateTime 获取1分钟后的时间戳
可以使用Java 8中的LocalDateTime类和Duration类来获取1分钟后的时间戳,具体代码如下所示:
```java
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
public class Example {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime afterOneMinute = now.plus(1, ChronoUnit.MINUTES);
long timestamp = afterOneMinute.toInstant(java.time.ZoneOffset.of("+8")).toEpochMilli();
System.out.println("1分钟后的时间戳为:" + timestamp);
}
}
```
运行上述代码,即可输出1分钟后的时间戳。
传入时间戳通过LocalDateTime获取此时间戳所在天的零点时间戳
可以使用`LocalDateTime`和`ZoneOffset`来获取一个时间戳所在天的零点时间戳。具体的实现代码如下:
```java
long timestamp = 1629312000000L; // 假设传入的时间戳为 2021-08-19 00:00:00
ZoneOffset zoneOffset = ZoneOffset.of("+8");
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), zoneOffset);
LocalDateTime startOfDay = localDateTime.toLocalDate().atStartOfDay();
long startOfDayTimestamp = startOfDay.toInstant(zoneOffset).toEpochMilli();
```
其中,`LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), zoneOffset)`表示将时间戳转化为`LocalDateTime`对象;`localDateTime.toLocalDate().atStartOfDay()`表示获取`LocalDateTime`所在天的零点时间;`startOfDay.toInstant(zoneOffset).toEpochMilli()`表示将零点时间转化为时间戳。
需要注意的是,上述代码中的时区设置是硬编码的,如果需要适应不同的时区,可以根据实际情况进行调整。
阅读全文