java JDK1.8 日期处理方法

Java 8 中的 LocalDate 用于表示当天日期。

    /**
     * Java 8 中的 LocalDate 用于表示当天日期。
     * 和java.util.Date不同,它只有日期,不包含时间。
     * 当你仅需要表示日期时就用这个类。 
     * Java 8中获取年、月、日信息
     */
    private static void fun() {
        LocalDate today = LocalDate.now();
        System.out.println("今天的日期:" + today);
        System.out.println("year:" + today.getYear());
        System.out.println("month:" + today.getMonthValue());
        System.out.println("day:" + today.getDayOfMonth());
    }

Java 8中处理特定日期

    /**
     * Java 8中处理特定日期 LocalDate.of()创建任意日期,
     * 该方法需要传入年、月、日做参数, 返回对应的LocalDate实例。
     */
    private static void fun1() {
        LocalDate date = LocalDate.of(2020, 3, 19);
        System.out.println("自定义日期:" + date);
    }

Java 8中判断两个日期是否相等

    /**
     * Java 8中判断两个日期是否相等
     */
    private static void fun2() {
        LocalDate date1 = LocalDate.now();
        LocalDate date2 = LocalDate.of(2020, 2, 5);
        if (date1.equals(date2)) {
            System.out.println("时间相等");
        } else {
            System.out.println("时间不等");
        }
    }

Java 8中检查像生日这种周期性事件

    /**
     * Java 8中检查像生日这种周期性事件
     */
    private static void fun3() {
        LocalDate date1 = LocalDate.now();
        LocalDate date2 = LocalDate.of(2020,2,6);
        MonthDay birthday = MonthDay.of(date2.getMonth(),date2.getDayOfMonth());
        MonthDay currentMonthDay = MonthDay.from(date1);
        if(currentMonthDay.equals(birthday)){
            System.out.println("是你的生日");
        }else{
            System.out.println("你的生日还没有到");
        }
    }

Java 8获取当前日间处理

    /**
     * Java 8获取当前日间处理
     * 你可以用同样的方法增加1个月、1年、1小时、1分钟
     * 判断是否是闰年
     * 计算两日日期相差天数
     */
    private static void fun4() {
        LocalDate today = LocalDate.now();
        System.out.println("今天的日期为:" + today);
        LocalDate nextWeek = today.plus(1, ChronoUnit.WEEKS);
        System.out.println("一周后的日期为:" + nextWeek);
        LocalDate previousYear = today.minus(1, ChronoUnit.YEARS);
        System.out.println("一年前的日期 : " + previousYear);
        LocalDate nextYear = today.plus(1, ChronoUnit.YEARS);
        System.out.println("一年后的日期:" + nextYear);
        //判断是否是闰年
        if (today.isLeapYear()) {
            System.out.println("几年是闰年");
        } else {
            System.out.println("今年不少闰年");
        }
        //计算两日日期相差天数
        LocalDate java8Release = LocalDate.of(2020, 12, 14);
        Period periodToNextJavaRelease = Period.between(today, java8Release);
        System.out.println("Months left between today and Java 8 release : "
                + periodToNextJavaRelease.getMonths());
    }

Java 8中获取当前时间

  /**
     * Java 8中获取当前时间
     * 当前时间就只包含时间信息,没有日期
     */
    private static void fun5() {
        LocalTime time = LocalTime.now();
        System.out.println("获取当前的时间,不含有日期:"+time);
    }

Java 8中获取当前时间进行处理

    /**
     * Java 8中获取当前时间进行处理
     */
    private static void fun6() {
        LocalTime time = LocalTime.now();
        LocalTime newTime = time.plusHours(3);
        System.out.println("三个小时后的时间为:"+newTime);
    }

Java 8的Clock时钟类

    /**
     * Java 8的Clock时钟类
     * Java 8增加了一个Clock时钟类用于获取当时的时间戳,
     * 或当前时区下的日期时间信息。以前用到System.currentTimeInMillis()
     * 和TimeZone.getDefault()的地方都可用Clock替换。
     */
    private static void fun7() {
        Clock clock = Clock.systemUTC();
        System.out.println("Clock : " + clock.millis());
        Clock defaultClock = Clock.systemDefaultZone();
        System.out.println("Clock : " + defaultClock.millis());
    }

如何用Java判断日期是早于还是晚于另一个日期

   /**
     * 如何用Java判断日期是早于还是晚于另一个日期
     */
    private static void fun8() {
        LocalDate today = LocalDate.now();
        LocalDate tomorrow = LocalDate.of(2020, 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);
        }
    }

Java 8中处理时区

    /**
     * Java 8中处理时区
     */
    private static void fun9() {
        ZoneId america = ZoneId.of("America/New_York");
        LocalDateTime localtDateAndTime = LocalDateTime.now();
        ZonedDateTime dateAndTimeInNewYork  = ZonedDateTime.of(localtDateAndTime, america );
        System.out.println("Current date and time in a particular timezone : " + dateAndTimeInNewYork);
    }

时间处理

 /**
     * 获得当月天数
     * 在Java 8中获取当前的时间戳
     * Java 8中如何使用预定义的格式化工具去解析或格式化日期
     */
    private static void fun10() {
        YearMonth currentYearMonth = YearMonth.now();
        System.out.printf("Days in month year %s: %d%n", currentYearMonth, currentYearMonth.lengthOfMonth());
        YearMonth creditCardExpiry = YearMonth.of(2019, Month.FEBRUARY);
        System.out.printf("Your credit card expires on %s %n", creditCardExpiry);
        //当前的时间戳
        Instant timestamp = Instant.now();
        System.out.println("What is value of this instant " + timestamp.toEpochMilli());
        //格式化日期
        String dayAfterTommorrow = "20180205";
        LocalDate formatted = LocalDate.parse(dayAfterTommorrow,
                DateTimeFormatter.BASIC_ISO_DATE);
        System.out.println(dayAfterTommorrow + "  格式化后的日期为:  " + formatted);
    }

字符串互转日期类型

    /**
     * 字符串互转日期类型
     */

    private static void fun11() {
        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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值