前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >根据两个日期之间获取LocalDate日历列表和LocalDate和LocalDateTime数据格式转换

根据两个日期之间获取LocalDate日历列表和LocalDate和LocalDateTime数据格式转换

作者头像
oktokeep
发布2024-10-09 11:24:09
800
发布2024-10-09 11:24:09
举报
文章被收录于专栏:第三方工具

根据两个日期之间获取LocalDate日历列表和LocalDate和LocalDateTime数据格式转换

代码语言:javascript
复制
package com.example.core.mydemo.localdatetime;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 根据两个日期之间,获取该日期之间的每天的日期格式
 * LocalDate和LocalDateTime数据格式转换
 * output:
 * 2024-10-01
 * 2024-10-02
 * 2024-10-03
 * 2024-10-04
 * 2024-10-05
 * ldt=2024-05-22T10:00
 * ldtStr=2024-05-22 10:00:00
 */
public class LocalDateTest {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        //开始
        Long start = 20241001L;
        //结束
        Long end = 20241005L;
        if(start.longValue() == end.longValue()){
            LocalDate ldStart = parseStringToLocalDate(String.valueOf(start),"yyyyMMdd");
            list.add(formatLocalDateToString(ldStart,"yyyy-MM-dd"));
        }else if(start < end){
            LocalDate ldStart = parseStringToLocalDate(String.valueOf(start),"yyyyMMdd");
            LocalDate ldEnd = parseStringToLocalDate(String.valueOf(end),"yyyyMMdd");
            list.add(formatLocalDateToString(ldStart,"yyyy-MM-dd"));
//            list.add(formatLocalDateToString(ldEnd,"yyyy-MM-dd"));
            LocalDate ldMiddle = ldStart;
            while (true){
                LocalDate nextDay = ldMiddle.plusDays(1);
                list.add(formatLocalDateToString(nextDay,"yyyy-MM-dd"));
                //终止循环
                if (nextDay.isEqual(ldEnd)) {
                    break;
                }
                //递增
                ldMiddle = nextDay;
            }
        }

        //默认升序,去重
          list =  list.stream().distinct().sorted().collect(Collectors.toList());
//        Collections.sort(list);

        // 输出排序后的列表
        for (String str : list) {
            System.out.println(str);
        }

        //LocalDateTime测试
        LocalDateTime ldt = parseStringToLocalDateTime("20240522100000","yyyyMMddHHmmss");
        System.out.println("ldt=" + ldt);
        String ldtStr = formatLocalDateTimeToString(ldt,"yyyy-MM-dd HH:mm:ss");
        System.out.println("ldtStr=" + ldtStr);
    }

    /**
     * LocalDate转换
     * @param date
     * @param format
     * @return
     */
    public static LocalDate parseStringToLocalDate(String date,String format) {
        return LocalDate.parse(date, DateTimeFormatter.ofPattern(format));
    }

    public static String formatLocalDateToString(LocalDate localDate,String format) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
        return localDate.format(formatter);
    }

    /**
     * 同理  LocalDateTime
     * @param date
     * @param format
     * @return
     */
    public static LocalDateTime parseStringToLocalDateTime(String date,String format) {
        return LocalDateTime.parse(date, DateTimeFormatter.ofPattern(format));
    }

    public static String formatLocalDateTimeToString(LocalDateTime localDateTime,String format) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
        return localDateTime.format(formatter);
    }

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档