LocalDateTime和Date得转换

本文介绍了在Java8中如何使用LocalDateTime进行时间戳转换,包括获取毫秒和秒数,以及与String和Date对象之间的相互转换。所有转换都在东8区(北京时间)的时区下进行,确保了时间的一致性。示例代码详细展示了转换的方法,对于在Java8中处理时间的开发者来说非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java8 LocalDateTime获取时间戳(毫秒/秒)、LocalDateTime与String互转、Date与LocalDateTime互转

LocalDateTime获取时间戳(毫秒/秒)、LocalDateTime与String互转、Date与LocalDateTime互转

文中都使用的时区都是东8区,也就是北京时间。这是为了防止服务器设置时区错误时导致时间不对,如果您是其他时区,请自行修改

1.LocalDateTime获取毫秒数

//获取秒数

Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));

//获取毫秒数

Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();

 

2.LocalDateTime与String互转

//时间转字符串格式化

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");

String dateTime = LocalDateTime.now(ZoneOffset.of("+8")).format(formatter);



//字符串转时间

String dateTimeStr = "2018-07-28 14:11:15";

DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

LocalDateTime dateTime = LocalDateTime.parse(dateTimeStr, df);

 

3.Date与LocalDateTime互转

//将java.util.Date 转换为java8 的java.time.LocalDateTime,默认时区为东8区

public static LocalDateTime dateConvertToLocalDateTime(Date date) {

return date.toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime();

}

//将java8 的 java.time.LocalDateTime 转换为 java.util.Date,默认时区为东8区

public static Date localDateTimeConvertToDate(LocalDateTime localDateTime) {

return Date.from(localDateTime.toInstant(ZoneOffset.of("+8")));

}

/**

* 测试转换是否正确

*/

@Test

public void testDateConvertToLocalDateTime() {

Date date = DateUtils.parseDate("2018-08-01 21:22:22", DateUtils.DATE_YMDHMS);

LocalDateTime localDateTime = DateUtils.dateConvertToLocalDateTime(date);

Long localDateTimeSecond = localDateTime.toEpochSecond(ZoneOffset.of("+8"));

Long dateSecond = date.toInstant().atOffset(ZoneOffset.of("+8")).toEpochSecond();

Assert.assertTrue(dateSecond.equals(localDateTimeSecond));

}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值