日期格式的使用DateTimeFormatter与LocalDateTime

日期格式的使用DateTimeFormatter与LocalDateTime

public static void main(String[] args) {
    String time1 = "2019-02-07 07:43:53";
    String time2 = "20190207074353";
    //时间
    //字符串转化
    DateTimeFormatter formater1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    DateTimeFormatter formater2 = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
    LocalDateTime timeDate1, timeDate2;
    //将指定格式的字符串转化为LocalDateTime
    timeDate1 = LocalDateTime.parse(time1, formater1);
    timeDate2 = LocalDateTime.parse(time2, formater2);
    //字符串格式1转日期==2019-02-07T07:43:53
    System.out.println("字符串格式1转日期==" + timeDate1);
    //字符串格式2转日期==2019-02-07T07:43:53
    System.out.println("字符串格式2转日期==" + timeDate2);
    //LocalDateTime=LocalDate+LocalTime
    LocalDate localDate = timeDate1.toLocalDate();
    LocalTime localTime = timeDate1.toLocalTime();
    //startdate年月日===2019-02-07
    System.out.println("startdate年月日===" + timeDate1.toLocalDate());
    //startdate时分秒===07:43:53
    System.out.println("startdate时分秒===" + timeDate1.toLocalTime());


    //MM 02月02日  M  2月2日
    DateTimeFormatter yearFormater = DateTimeFormatter.ofPattern("yyyy-M-d");
    DateTimeFormatter millFormater = DateTimeFormatter.ofPattern("HH:mm");
    //将日期按照指定格式  进行格式化
    String yearFor = localDate.format(yearFormater);
    String millFor = localTime.format(millFormater);
    //格式化日期2019-2-7===2019-2-7
    System.out.println("格式化日期2019-2-7===" + yearFor);
    //格式化日期07:43===07:43
    System.out.println("格式化日期07:43===" + millFor);
}
//2022-01-16更新
public static void main(String[] args) throws ParseException {
    //1.字符串强转日期  日期格式化字符串
    String str = "2019-01-11 10:07:09";
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    SimpleDateFormat formatter2 = new SimpleDateFormat("yyyyMMddHHmmss");
    Date date = formatter.parse(str);
    String dateStr = formatter2.format(date);
    //===20190111100709
    System.out.println("格式化后的日期格式===" + dateStr);

    //2.获取系统当前日期
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
    DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    LocalDateTime now = LocalDateTime.now();
    Date time = Calendar.getInstance().getTime();// get current instance of the calendar
    //current==Sun Jan 16 16:32:36 CST 2022 一般都需要格式化
    System.out.println("current1==" + time);
    System.out.println("current2==" + now);
    //格式化==20220116164036
    System.out.println("currentFormat1==" + formatter2.format(time));
    //格式化==2022-01-16 16:37:05
    System.out.println("currentFormat2==" + now.format(dateTimeFormatter2));


    //3.计算相差分钟
    String starttime = "20211229174229";

    LocalDateTime startDate = LocalDateTime.parse(starttime, dateTimeFormatter);
    long minutes = Duration.between(startDate, LocalDateTime.now()).toMinutes();
    if (minutes > 60) {
        System.out.println("相差分钟===" + minutes);
    }
    //4.计算相差天数--通用

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); // 自定义时间格式
    String a = "2021-1-1";
    String b = "2021-3-1";
    Calendar calendar_a = Calendar.getInstance(); // 获取日历对象
    Calendar calendar_b = Calendar.getInstance();
    try {
        Date date_a = simpleDateFormat.parse(a); // 字符串转Date
        Date date_b = simpleDateFormat.parse(b);
        calendar_a.setTime(date_a); // 设置日历
        calendar_b.setTime(date_b);
    } catch (ParseException e) { // 格式化异常
        e.printStackTrace();
    }
    long time_a = calendar_a.getTimeInMillis();
    long time_b = calendar_b.getTimeInMillis();
    // 计算相差天数
    long dayInter = (time_b - time_a) / (1000 * 3600 * 24);
    System.out.println("计算相差天数==" + dayInter);

    //5.日期之间的比较
    //now>startDate  返回1 now=startDate  返回0  now<startDate  返回-1
    int flag = LocalDateTime.now().compareTo(startDate);
}
posted @   码农公子的幸福生活  阅读(392)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
点击右上角即可分享
微信分享提示