Java处理日期、日历和时间

 public static void main(String[] args) {
        System.out.println("示例1:Java 8中获取今天的日期");
        示例1:Java 8中获取今天的日期
        LocalDate today = LocalDate.now();
        System.out.println("今天的日期:"+today);

        System.out.println("示例2:Java 8中获取年、月、日信息");
        //示例2:Java 8中获取年、月、日信息
        获取年月日信息();

        //示例3:Java 8中处理特定日期
        System.out.println("示例3:Java 8中处理特定日期");
        LocalDate date = LocalDate.of(2018,2,6);
        System.out.println("自定义日期:"+date);

        //示例4:Java 8中判断两个日期是否相等
        System.out.println("示例4:Java 8中判断两个日期是否相等");
        LocalDate date1 = LocalDate.now();
        LocalDate date2 = LocalDate.of(2018,2,5);
        if(date1.equals(date2)){
            System.out.println("时间相等");
        }else{
            System.out.println("时间不等");
        }

        //示例5:Java 8中检查像生日这种周期性事件
        System.out.println("示例5:Java 8中检查像生日这种周期性事件");
        Java8中检查像生日这种周期性事件();

        //示例6:Java 8中获取当前时间
        System.out.println("示例6:Java 8中获取当前时间");
        LocalTime time = LocalTime.now();
        System.out.println("获取当前的时间,不含有日期:"+time);

        //示例7:Java 8中获取当前时间
        System.out.println("示例7:Java 8中获取当前时间");
        获取当前时间();

        System.out.println("示例8:Java 8如何计算一周后的日期");
       //示例8:Java 8如何计算一周后的日期
        如何计算一周后的日期();

        System.out.println("示例9:Java 8计算一年前或一年后的日期");
       // 示例9:Java 8计算一年前或一年后的日期
        计算一年前或一年后的日期();

        System.out.println("示例10:Java 8的Clock时钟类");
        //示例10:Java 8的Clock时钟类
        // Returns the current time based on your system clock and set to UTC.
        Clock clock = Clock.systemUTC();
        System.out.println("Clock : " + clock.millis());
        // Returns time based on system clock zone
        Clock defaultClock = Clock.systemDefaultZone();
        System.out.println("Clock : " + defaultClock.millis());

        System.out.println("示例11:如何用Java判断日期是早于还是晚于另一个日期");
        //示例11:如何用Java判断日期是早于还是晚于另一个日期
        判断日期早于后晚于某个日期();


        System.out.println("示例12:Java 8中处理时区");
        //示例12:Java 8中处理时区
        // Date and time with timezone in Java 8 Java 8不仅分离了日期和时间,也把时区分离出来了。
        // 现在有一系列单独的类如ZoneId来处理特定时区,ZoneDateTime类来表示某时区下的时间。
        // 这在Java 8以前都是 GregorianCalendar类来做的。
        // 下面这个例子展示了如何把本时区的时间转换成另一个时区的时间。
        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);

        System.out.println("示例13:如何表示信用卡到期这类固定日期,答案就在YearMonth");
        //示例13:如何表示信用卡到期这类固定日期,答案就在YearMonth
        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);

        System.out.println("示例14:如何在Java 8中检查闰年");
        //示例14:如何在Java 8中检查闰年
        java8查询闰年();

        System.out.println("示例15:计算两个日期之间的天数和月数");
        //示例15:计算两个日期之间的天数和月数
        计算两个日期之间的天数和月数();

        System.out.println("示例16:在Java 8中获取当前的时间戳");
        //示例16:在Java 8中获取当前的时间戳
        Instant timestamp = Instant.now();
        System.out.println("What is value of this instant " + timestamp.toEpochMilli());

        System.out.println("示例17:Java 8中如何使用预定义的格式化工具去解析或格式化日期");
        //示例17:Java 8中如何使用预定义的格式化工具去解析或格式化日期
        String dayAfterTommorrow = "20180205";
        LocalDate formatted = LocalDate.parse(dayAfterTommorrow,
                DateTimeFormatter.BASIC_ISO_DATE);
        System.out.println(dayAfterTommorrow+"  格式化后的日期为:  "+formatted);

        System.out.println("示例18:字符串互转日期类型");
        //示例18:字符串互转日期类型
        字符串互转日期类型();

    }

    private static void 字符串互转日期类型() {
        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);
    }

    private static void 计算两个日期之间的天数和月数() {
        LocalDate today = LocalDate.now();

        LocalDate java8Release = LocalDate.of(2018, 12, 14);

        Period periodToNextJavaRelease = Period.between(today, java8Release);
        System.out.println("Months left between today and Java 8 release : "
                + periodToNextJavaRelease.getMonths() );
    }

    private static void java8查询闰年() {
        LocalDate today = LocalDate.now();
        if(today.isLeapYear()){
            System.out.println("This year is Leap year");
        }else {
            System.out.println("2018 is not a Leap year");
        }
    }

    private static void 判断日期早于后晚于某个日期() {
        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);
        }
    }

    private static void 计算一年前或一年后的日期() {
        LocalDate today = LocalDate.now();

        LocalDate previousYear = today.minus(1, ChronoUnit.YEARS);
        System.out.println("一年前的日期 : " + previousYear);

        LocalDate nextYear = today.plus(1, ChronoUnit.YEARS);
        System.out.println("一年后的日期:"+nextYear);
    }

    private static void 如何计算一周后的日期() {
        LocalDate today = LocalDate.now();
        System.out.println("今天的日期为:"+today);
        LocalDate nextWeek = today.plus(1, ChronoUnit.WEEKS);
        System.out.println("一周后的日期为:"+nextWeek);
    }

    private static void 获取当前时间() {
        LocalTime time = LocalTime.now();
        LocalTime newTime = time.plusHours(3);
        System.out.println("三个小时后的时间为:"+newTime);
    }

    private static void Java8中检查像生日这种周期性事件() {
        LocalDate date1 = LocalDate.now();

        LocalDate date2 = LocalDate.of(2018,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("你的生日还没有到");
        }
    }

    private static void 获取年月日信息() {
        //示例2:Java 8中获取年、月、日信息
        System.out.println("Java 8中获取年、月、日信息");
        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);
    }

参考原文:https://mp.weixin.qq.com/s/X-Jotzc_nbKaWiD321yRXA

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值