• Java8 日期处理详细汇总


    简要:
    Java Calendar 处理时间和日期,不仅仅性能差,且代码很冗余,建议用 Java 8 提供的新 API 。
    Java 处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date 设定为可变类型,以及 SimpleDateFormat 的非线程安全使其应用非常受限。

    示例1:Java 8 中获取今天的日期
    Java 8 中的 LocalDate 用于表示当天日期。和 java.util.Date 不同,它只有日期,不包含时间

    public class Demo01 {
        public static void main(String[] args) {
            LocalDate today = LocalDate.now();
            System.out.println("今天的日期:"+today);
        }
    }
    /*
     运行结果:
      今天的日期:2019-06-07
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    | 示例 2:Java 8 中获取年、月、日信息

    public class Demo02 {
        public static void main(String[] args) {
            LocalDate today = LocalDate.now();
            int year = today.getYear();
            int month = today.getMonthValue();
            int day = today.getDayOfMonth();
    
            System.out.println("year:"+year);
            System.out.println("month:"+month);
            System.out.println("day:"+day);
    
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    示例 3:在 Java 8 中获取当前的时间戳
    Instant 类有一个静态工厂方法 now() 会返回当前的时间戳,如下所示:
    在这里插入图片描述
    | 示例 4:Java 8 中如何使用预定义的格式化工具去解析或格式化日期
    在这里插入图片描述
    | 示例 5:字符串互转日期类型

    LocalDateTime date = LocalDateTime.now();

    DateTimeFormatter format1 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
    //日期转字符串
    String str = date.format(format1);
    
    System.out.println("日期转换为字符串:"+str);
    
    DateTimeFormatter format2 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
    //字符串转日期
    LocalDate date2 = LocalDate.parse(str,format2);
    System.out.println("日期类型:"+date2);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    示例 6:如何用 Java 判断日期是早于还是晚于另一个日期
    在 Java 8 中,LocalDate 类有两类方法 isBefore() 和 isAfter() 用于比较日期。调用 isBefore() 方法时,如果给定日期小于当前日期则返回 true。

     LocalDate today = LocalDate.now();
    
            LocalDate tomorrow = LocalDate.of(2018,2,6);
            if(tomorrow.isAfter(today)){
                System.out.println("之后的日期:"+tomorrow);
            }
    
            LocalDate yesterday = today.minus(1, ChronoUnit.DAYS);
            if(yesterday.isBefore(today)){
                System.out.println("之前的日期:"+yesterday);
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    Python数组基本操作
    mysql索引详解
    2022到2023基于java+微信小程序毕业设计课题参考
    Scala的集合操作之可变数组和不可变数组,可变List集合与不可变List集合,可变Set与不可变Set操作,可变和不可变Map集合和元组操作
    JS堆栈(知识点回顾)
    京东按关键字搜索商品 API
    快速入门MySQL
    企业内容管理(ECM) 集成如何为您的 IT 环境增加价值
    区间素数筛
    vue3错误排查-POST请求的body参数 传参方式form-data和json
  • 原文地址:https://blog.csdn.net/Wn1999/article/details/126099834