java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > JAVA时间戳和LocalDateTime互转

JAVA中时间戳与LocalDateTime互相转换代码例子

作者:海边的漫彻斯特

最近在编码过程中遇到将时间戳转化为 LocalDateTime,所以这里给总结下,这篇文章主要给大家介绍了关于JAVA中时间戳与LocalDateTime互相转换的相关资料,需要的朋友可以参考下

时间戳转LocalDateTime:

要将时间戳转换为LocalDateTime并将LocalDateTime转换回时间戳,使用Java的java.time包。以下是示例代码:

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;

public class TimestampToLocalDateTime {
    public static void main(String[] args) {
    	// 注意:这里是秒级时间戳
        long timestamp = 1692948472; 

        // 使用Instant从时间戳创建时间点
        Instant instant = Instant.ofEpochSecond(timestamp);

        // 使用ZoneId定义时区(可以根据需要选择不同的时区)
        ZoneId zoneId = ZoneId.of("Asia/Shanghai");

        // 将Instant转换为LocalDateTime
        LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();

        System.out.println("时间戳: " + timestamp);
        System.out.println("转换后的LocalDateTime: " + localDateTime);
    }
}

LocalDateTime转时间戳:

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;

public class LocalDateTimeToTimestamp {
    public static void main(String[] args) {
        // 创建一个LocalDateTime对象
        LocalDateTime localDateTime = LocalDateTime.of(2023, 8, 25, 0, 0);

        // 使用ZoneId定义时区(可以根据需要选择不同的时区)
        ZoneId zoneId = ZoneId.of("Asia/Shanghai");

        // 将LocalDateTime转换为Instant
        Instant instant = localDateTime.atZone(zoneId).toInstant();

        // 获取时间戳
        long timestamp = instant.getEpochSecond();

        System.out.println("LocalDateTime: " + localDateTime);
        System.out.println("转换后的时间戳: " + timestamp);
    }
}

附:LocalDate,LocalDateTime,Date及时间戳的转换

1.时间戳转LocalDateTime,时间戳如果是字符串则先转为long

LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(System.currentTimeMillis()/1000, 0, ZoneOffset.ofHours(8));

2.日期字符串转LocalDate

LocalDate parse = LocalDate.parse(“2020-05-13”);

3.LocalDateTime转LocalDate

LocalDate localDate = LocalDateTime.now().toLocalDate();

4.Date转LocalDate

Date date = new Date();
LocalDate localDate = date.toInstant().atZone(ZoneOffset.ofHours(8)).toLocalDate();

或使用系统默认时区

LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

5.时间戳转Date

Date date = new Date(System.currentTimeMillis());

date.setTime(System.currentTimeMillis());

6.Date转LocalDateTime

LocalDateTime localDateTime = LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault());

7.LocalDateTime转Date

Date date1 = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant());

8.LocalDate转Date

ZonedDateTime zonedDateTime = LocalDate.now().atStartOfDay(ZoneId.systemDefault());
Date date = Date.from(zonedDateTime.toInstant());

总结 

到此这篇关于JAVA中时间戳与LocalDateTime互相转换的文章就介绍到这了,更多相关JAVA时间戳和LocalDateTime互转内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文