LocalDate、LocalDateTime互转String

目录

1 LocalDate,String互转

LocalDate转String

String转LocalDate

2 LocalDateTime,String互转

LocalDateTime转String

String转LocalDateTime

3 LocalDateTime,LocalDate互转

LocalDateTime转LocalDate

LocalDate转LocalDateTime

4 Date,LocalDate互转

Date转LocalDate

LocalDate转Date 

5 LocalDateTime,时间戳互转

LocalDateTime转时间戳

时间戳转LocalDateTime 

6 常用方法

1 LocalDate日期加减

2 LocalDate比较

3 LocalDate、LocalDateTime获取当天、本周、本月开始和结束时间

3.1 LocalDate、LocalDateTime获取本月第一天和最后一天

3.2 LocalDate、LocalDateTime获取本周第一天和最后一天

3.3 LocalDateTime获取当天开始时间和结束时间

4 LocalDateTime时间差值(毫秒)

5 LocalDate获取两个日期之间的差值


1 LocalDate,String互转

  • LocalDate转String

LocalDate localDateNow = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String localDateNowStr = localDateNow.format(formatter);
System.out.println(localDateNowStr);

输出结果:2022-07-26 

  • String转LocalDate

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate parse = LocalDate.parse("2022-07-26", formatter);
System.out.println(parse);

输出结果:2022-07-26 

2 LocalDateTime,String互转

  • LocalDateTime转String

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTimeNow = LocalDateTime.now();
String localDateTimeNowStr = localDateTimeNow.format(formatter);
System.out.println(localDateTimeNowStr);

输出结果:2022-07-26 20:36:05

  • String转LocalDateTime

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime parse = LocalDateTime.parse("2022-07-06 20:20:00", formatter);
System.out.println(parse);

输出结果:2022-07-06T20:20

3 LocalDateTime,LocalDate互转

  • LocalDateTime转LocalDate

LocalDateTime localDateTimeNow = LocalDateTime.now();
LocalDate localDate = localDateTimeNow.toLocalDate();
System.out.println(localDate);

输出结果:2022-07-06

  • LocalDate转LocalDateTime

LocalDate localDateNow = LocalDate.now();
// 当前时间时分秒
LocalTime localTimeNow = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.of(localDateNow, localTimeNow);
System.out.println(localDateTime);

输出结果:2022-07-26T17:40:17.302

4 Date,LocalDate互转

  • Date转LocalDate

Date date = new Date();
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
System.out.println(localDate);
-----------------------------
输出结果:2022-09-15
  • LocalDate转Date 

LocalDate now = LocalDate.now();
Date fromDate = Date.from(now.atStartOfDay(ZoneId.systemDefault()).toInstant());
System.out.println(fromDate);
-----------------------------
输出结果:Thu Sep 15 00:00:00 CST 2022

5 LocalDateTime,时间戳互转

  • LocalDateTime转时间戳

// 获取当前时间
LocalDateTime localDateTime = LocalDateTime.now();
// 时间戳(毫秒)
long milliseconds = localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
// 时间戳(秒)
long second = localDateTime.toEpochSecond(ZoneOffset.ofHours(8));
System.out.println(localDateTime);
System.out.println(milliseconds);
System.out.println(second);

-----------------------------
输出结果:2023-09-15T10:57:54.824
1694746674824
1694746674
  • 时间戳转LocalDateTime 

// 时间戳(毫秒)转为LocalDateTime
LocalDateTime localDateTimeMillisecond = Instant.ofEpochMilli(1694746674824L).atZone(ZoneOffset.ofHours(8)).toLocalDateTime();
System.out.println(localDateTimeMillisecond);
// 时间戳(秒)转为LocalDateTime
LocalDateTime localDateTimeSecond = LocalDateTime.ofEpochSecond(1694746674L, 0, ZoneOffset.ofHours(8));
System.out.println(localDateTimeSecond);

-----------------------------
输出结果:2023-09-15T10:57:54.824
2023-09-15T10:57:54

6 常用方法

1 LocalDate日期加减

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate parse = LocalDate.parse("2022-07-26", formatter);
// 天数+1
LocalDate localDateDay = parse.plusDays(1);
// 月份+1
LocalDate localDateMonths = parse.plusMonths(1);
// 年份+1
LocalDate localDateYears = parse.plusYears(1);
// 周+1
LocalDate localDateWeeks = parse.plusWeeks(1);

依次输出结果:2022-07-27
                         2022-08-26
                         2023-07-26
                         2022-08-02

对应日期减的方法为minus开头的方法,例如:parse.minusDays(1);为日期减一天。

2 LocalDate比较

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate parse = LocalDate.parse("2022-07-26", formatter);
LocalDate parseLast = LocalDate.parse("2022-07-28", formatter);
boolean before = parse.isBefore(parseLast);
boolean after = parse.isAfter(parseLast);
System.out.println(before);
System.out.println(after);

依次输出结果:true
                         false

3 LocalDate、LocalDateTime获取当天、本周、本月开始和结束时间

3.1 LocalDate、LocalDateTime获取本月第一天和最后一天

// 当前时间
LocalDate localDateNow = LocalDate.now();
// 获取当前月的第一天
LocalDate firstDay = localDateNow.with(TemporalAdjusters.firstDayOfMonth());
// 获取当前月的最后一天
LocalDate lastDay = localDateNow.with(TemporalAdjusters.lastDayOfMonth());
System.out.println(localDateNow);
System.out.println(firstDay);
System.out.println(lastDay);
System.out.println("------------------分隔线-------------------");
LocalDateTime firstDayOfMonthStart = firstDay.atStartOfDay();
LocalDateTime lastDayOfMonthEnd = LocalDateTime.of(lastDay, LocalTime.MAX);
System.out.println(firstDayOfMonthStart);
System.out.println(lastDayOfMonthEnd);

依次输出结果:2023-02-28
2023-02-01
2023-02-28
------------------分隔线-------------------
2023-02-01T00:00
2023-02-28T23:59:59.999999999

3.2 LocalDate、LocalDateTime获取本周第一天和最后一天

// 当前时间
LocalDate localDateNow = LocalDate.now();
// 本周一
LocalDate monday = localDateNow.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
// 本周日
LocalDate sunday = localDateNow.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
System.out.println(monday);
System.out.println(sunday);
System.out.println("------------------分隔线-------------------");
LocalDateTime mondayOfWeekStart = monday.atStartOfDay();
LocalDateTime sundayOfWeekEnd = LocalDateTime.of(sunday, LocalTime.MAX);
System.out.println(mondayOfWeekStart);
System.out.println(sundayOfWeekEnd);

 依次输出结果:2023-02-27
2023-03-05
------------------分隔线-------------------
2023-02-27T00:00
2023-03-05T23:59:59.999999999

3.3 LocalDateTime获取当天开始时间和结束时间

LocalDate localDateNow = LocalDate.now();
// 当天开始时间
LocalDateTime todayStartTime = localDateNow.atStartOfDay();
// 当天结束时间
LocalDateTime todayEndTime = LocalDateTime.of(localDateNow, LocalTime.MAX);
// yyyy-MM-dd HH:mm:ss 格式输出
System.out.println(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(todayStartTime));
System.out.println(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(todayEndTime));

依次输出结果:2023-02-28 00:00:00
2023-02-28 23:59:59 

4 LocalDateTime时间差值(毫秒)

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime parseStart = LocalDateTime.parse("2022-08-10 10:31:00", formatter);
LocalDateTime parseEnd = LocalDateTime.parse("2022-08-10 10:32:05", formatter);
long between = ChronoUnit.MILLIS.between(parseStart, parseEnd);
System.out.println(between);

输出结果:65000

5 LocalDate获取两个日期之间的差值

String startTime = "2023-01-01";
String endTime = "2023-07-01";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate parseStart = LocalDate.parse(startTime, formatter);
LocalDate parseEnd = LocalDate.parse(endTime, formatter);
long until = parseStart.until(parseEnd, ChronoUnit.DAYS);
System.out.println(until);

输出结果:181

until()方法的第二个参数可指定两个日期之间的差的规则,例如:ChronoUnit.DAYS(以天为单位),ChronoUnit.WEEKS(以周为单位)...,具体查看ChronoUnit枚举类。

  • 12
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要进行datelocaldatelocaldatetimestring之间的相互转换,可以使用Java 8中的DateTimeFormatter和相关类来实现。 1. 将String换为LocalDateTime: 使用DateTimeFormatter的ofPattern方法指定日期时间的格式,然后使用LocalDateTime的parse方法将String换为LocalDateTime对象。例如: ```java String dateStr = "2020-07-20 15:54:41"; String pattern = "yyyy-MM-dd HH:mm:ss"; DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern); LocalDateTime localDateTime = LocalDateTime.parse(dateStr, dateTimeFormatter); ``` 2. 将LocalDateTime换为String: 使用DateTimeFormatter的ofPattern方法指定日期时间的格式,然后使用LocalDateTime的format方法将LocalDateTime对象换为String。例如: ```java LocalDateTime localDateTime = LocalDateTime.now(); String pattern = "yyyy-MM-dd HH:mm:ss"; DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern); String dateStr = localDateTime.format(dateTimeFormatter); ``` 3. 将String换为LocalDate: 使用DateTimeFormatter的ofPattern方法指定日期的格式,然后使用LocalDate的parse方法将String换为LocalDate对象。例如: ```java String dateStr = "2021-06-15"; String pattern = "yyyy-MM-dd"; DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern); LocalDate localDate = LocalDate.parse(dateStr, dateTimeFormatter); ``` 4. 将LocalDate换为String: 使用DateTimeFormatter的ofPattern方法指定日期的格式,然后使用LocalDate的format方法将LocalDate对象换为String。例如: ```java LocalDate localDate = LocalDate.now(); String pattern = "yyyy-MM-dd"; DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern); String dateStr = localDate.format(dateTimeFormatter); ``` 请注意,以上代码示例仅供参考,具体的实现方式可以根据实际需求进行调整。 #### 引用[.reference_title] - *1* [LocalDateLocalDateTime的各种换形式](https://blog.csdn.net/zzti_erlie/article/details/100657394)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [LocalDate & LocalDateTime互相换](https://blog.csdn.net/weixin_45103793/article/details/117929986)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值