【LocalDateTime常见用法】

 简单记录下LocalDateTime常见用法

1.获取系统当前时间(转换格式)

(1)返回String类型时间格式(yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,yyyy-MM-dd HH:mm等) 

LocalDateTime.now().format(DateTimeFormatter.ofPattern ("yyyy-MM-dd HH:mm:ss"));

(2)获取当前系统时间戳,返回Long类型

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

2.获取系统当前日期前/后时间

(1)获取当前日期前10秒、10分钟、10天等

   pattern = "yyyy-MM-dd HH:mm:ss"

LocalDateTime.now().plusSeconds(-10).format(DateTimeFormatter.ofPattern(pattern));

LocalDateTime.now().plusMinutes(-10).format(DateTimeFormatter.ofPattern(pattern));

LocalDateTime.now().plusDay(-10).format(DateTimeFormatter.ofPattern(pattern));

获取当前日期后10秒、10分钟、10天等只需把时间改成正数。LocalDateTime方法还包括plusHours、plusWeeks、plusMonths、plusYears等。

(2)单独使用plus()

LocalDateTime plus(TemporalAmount amountToAdd)
//直接使用默认年月日三个参数(int类型),正整数代表当前日期之后,负整数代表当前日期之后
LocalDateTime.now().plus(Period.of(年,月,日)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

LocalDateTime plus(long amountToAdd,TemporalUnit unit)
//同上
LocalDateTime.now().plus(10, ChronoUnit.YEARS).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

3.格式转换

//2022-06-28T01:53:41.000+00:00 转换成 yyyy-MM-dd HH:mm:ss格式
String localDate = LocalDateTime
.parse("2022-06-28T01:53:41.000+00:00",DateTimeFormatter.ISO_OFFSET_DATE_TIME)
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

//2022-06-25T00:00:00 转换成 yyyy-MM-dd格式
String date = LocalDateTime
.parse("2022-06-25T00:00:00", DateTimeFormatter.ISO_DATE_TIME)
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

//注:其他格式转换类似
//时间戳转日期
Date date = new Date(Long.parseLong("1657508223"));
LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.systemDefault())
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))

//日期转时间戳
//yyyy-MM-dd格式转时间戳
LocalDate localDate = LocalDate.parse("2022-01-01", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
LocalDateTime localDateTime = localDate.atStartOfDay();
Long time = localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
//yyyy-MM-dd HH:mm:ss格式转时间戳
LocalDateTime localDate = LocalDateTime
.parse("2022-01-01 10:09:09", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
Long time = localDate.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();

4.日期比较

先将字符串转化成LocalDateTime,然后直接调用isAfter()或isBefore()方法。

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime date1 = LocalDateTime.parse("2022-01-01 10:09:09", dtf);
LocalDateTime date2 = LocalDateTime.parse("2022-01-01 11:09:09", dtf);
//返回true
date1.isBefore(date2);
//返回false
date1.isAfter(date2)

5.其他方法,获取当前日期年、月、日、当前日期季度第一天,当前日期季度最后一天等

//获取当前日期年份
int year = LocalDate.now().getYear();

//获取当前日期月份 直接调用getMonth()方法获取的是英文月份
int month = LocalDate.now().getMonthValue();

//获取当前日期日
int day = LocalDate.now().getDayOfMonth();

//获取当前季度第一天
Month month = Month.of(now.getMonth().firstMonthOfQuarter().getValue());
LocalDateTime ldt = LocalDateTime.of(LocalDate.of(now.getYear(), month, 1), LocalTime.MIN);

//获取当前季度最后一天
Month month2 = Month.of(now.getMonth().firstMonthOfQuarter().getValue()).plus(2L);
LocalDateTime ldt2 = LocalDateTime.of(LocalDate.of(now.getYear(), month2, month2.length(now.isLeapYear())), LocalTime.MAX);

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LocalDateTimeJava 8中的一个日期时间类,它表示了一个不带时区的日期时间,可以精确到纳秒。LocalDateTime类提供了方便的方法来处理日期时间,例如格式化、解析、比较等。下面是一些LocalDateTime用法示例: 1. 获取当前时间 可以使用静态工厂方法now()获取当前时间: ```java LocalDateTime now = LocalDateTime.now(); ``` 2. 根据年月日时分秒创建LocalDateTime对象 可以使用of()方法创建LocalDateTime对象,例如: ```java LocalDateTime dateTime = LocalDateTime.of(2021, 7, 7, 14, 30, 0); ``` 3. 格式化LocalDateTime对象 可以使用DateTimeFormatter类来格式化LocalDateTime对象,例如将LocalDateTime格式化为字符串形式: ```java DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedDateTime = dateTime.format(formatter); ``` 4. 解析字符串为LocalDateTime对象 可以使用DateTimeFormatter类来解析字符串为LocalDateTime对象,例如将字符串"2021-07-07 14:30:00"解析为LocalDateTime对象: ```java DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime dateTime = LocalDateTime.parse("2021-07-07 14:30:00", formatter); ``` 5. 比较两个LocalDateTime对象 LocalDateTime类提供了多个比较方法,例如isBefore()、isAfter()、isEqual()等。例如比较两个LocalDateTime对象的大小: ```java LocalDateTime dateTime1 = LocalDateTime.of(2021, 7, 7, 14, 30, 0); LocalDateTime dateTime2 = LocalDateTime.of(2021, 7, 7, 15, 0, 0); boolean isBefore = dateTime1.isBefore(dateTime2); // true boolean isAfter = dateTime1.isAfter(dateTime2); // false boolean isEqual = dateTime1.isEqual(dateTime2); // false ``` 总之,LocalDateTime类提供了丰富的方法来处理日期时间,可以方便地完成各种常见的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值