java8 time工具_Java8 localdatetime工具类汇总

1.LocalDate转Date

LocalDate nowLocalDate = LocalDate.now();

Date date = Date.from(localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant());

2.LocalDateTime转Date

LocalDateTime localDateTime = LocalDateTime.now();

Date date = Date.from(localDateTime.atZone(ZoneOffset.ofHours(8)).toInstant());

3.Date转LocalDateTime(LocalDate)

Date date =newDate();

LocalDateTime localDateTime = date.toInstant().atZone(ZoneOffset.ofHours(8)).toLocalDateTime();

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

4.LocalDate转时间戳

LocalDate localDate = LocalDate.now();

longtimestamp = localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant().toEpochMilli();

5.LocalDateTime转时间戳

LocalDateTime localDateTime = LocalDateTime.now();

longtimestamp = localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();

6.时间戳转LocalDateTime(LocalDate)

longtimestamp = System.currentTimeMillis();

LocalDate localDate = Instant.ofEpochMilli(timestamp).atZone(ZoneOffset.ofHours(8)).toLocalDate();

LocalDateTime localDateTime = Instant.ofEpochMilli(timestamp).atZone(ZoneOffset.ofHours(8)).toLocalDateTime();

7.LocalDateTime获取毫秒数

//获取秒数

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

//获取毫秒数

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

8.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);

9.Date与LocalDateTime互转

String todayStart = LocalDateTime.of(date, LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

String todayEnd = LocalDateTime.of(date, LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

10.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、付费专栏及课程。

余额充值