前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA8新特性-----新时间与日期API

JAVA8新特性-----新时间与日期API

作者头像
大忽悠爱学习
发布2021-11-15 15:12:30
2410
发布2021-11-15 15:12:30
举报
文章被收录于专栏:c++与qt学习c++与qt学习

新时间与日期API


新的时间和日期API

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
        //只获取当前系统的日期
        LocalDate now = LocalDate.now();
        System.out.println("当前系统的日期:"+now);
        //只获取当前系统的时间
        LocalTime time = LocalTime.now();
        System.out.println("当前系统的时间:"+time);
        //获取当前系统的日期和时间
        LocalDateTime lt=LocalDateTime.now();
        System.out.println("当前系统时间:"+lt);
        //自定义日期和时间---会产生一个新的实例
        LocalDateTime endTime = LocalDateTime.of(2021, 5, 20, 5, 20, 5);
        System.out.println("定制时间:"+endTime);
        //在原有时间基础上进行时间的加减,返回一个新的实例,即不修改原来的时间
        LocalDateTime pl = lt.plusYears(2);
        System.out.println("时间增加两年:"+pl);
        //获取当前日期和时间的具体信息
        int year = lt.getYear();
        System.out.println("当前年份:"+year);
        Month month = lt.getMonth();
        System.out.println("当前的月份:"+month);
在这里插入图片描述
在这里插入图片描述

LocalDateTime基本使用(包括Data转化)


Instant : 时间戳

(以Unix元年: 1970年1月1日 00:00:00 到某个时间之间的毫秒值)

代码语言:javascript
复制
        Instant ins1=Instant.now();//默认获取UTC时区,与中国上海的时区相差8小时
        System.out.println(ins1);
          //获取偏移8小时后的时区
        OffsetDateTime odt = ins1.atOffset(ZoneOffset.ofHours(8));
        System.out.println(odt);
在这里插入图片描述
在这里插入图片描述

【jdk1.8特性】之Instant


Duration计算时间间隔,Period计算日期间隔

代码语言:javascript
复制
       LocalDate now=LocalDate.now();
        LocalDate past = LocalDate.of(2020, 1, 1);
        //计算日期相隔的时间
        Period between = Period.between(past, now);
        System.out.println(between.getYears()+"年 "+between.getDays()+"月  "+between.getDays()+"日");
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
       LocalDateTime now=LocalDateTime.now();
        LocalDateTime past = LocalDateTime.of(2020, 1, 1,1,1,1);
        //计算时间相隔
        Duration between = Duration.between(past, now);
        System.out.println(between);
在这里插入图片描述
在这里插入图片描述

时间校正器

时间校正器基本用法如下:

代码语言:javascript
复制
public class TemporalAdjusterDemo {

    public static void main(String[] args) {
        demo1();
    }

    /**
     * 将日期调整到下个周日
     */
    public static void demo1(){
        LocalDate localDate = LocalDate.now();
        System.out.println(localDate);

        // 指定时间为这个月2号
        LocalDate localDate2 = localDate.withDayOfMonth(2);
        System.out.println(localDate2);

        // 通过时间校正器 : 获取下一个月的一号
        LocalDate localDate3 = localDate.with(TemporalAdjusters.firstDayOfNextMonth());
        System.out.println(localDate3);
        // 通过时间校正器 : 获取下一个周日
        LocalDate localDate4 = localDate.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
        System.out.println(localDate4);

        // 自定义下一个周一是什么时候
        //通过函数式接口完成(lambda表达式)
        Function<LocalDate,LocalDate> function = (localDateTime -> {
            DayOfWeek dayOfWeek = localDateTime.getDayOfWeek();
            LocalDate returnValue = null;
            switch (dayOfWeek){
                case MONDAY: returnValue = localDateTime; break;
                case TUESDAY: returnValue = localDateTime.plusDays(6);break;
                case WEDNESDAY: returnValue = localDateTime.plusDays(5);break;
                case THURSDAY: returnValue = localDateTime.plusDays(4);break;
                case FRIDAY: returnValue = localDateTime.plusDays(3);break;
                case SATURDAY: returnValue = localDateTime.plusDays(2);break;
                case SUNDAY: returnValue = localDateTime.plusDays(1);break;
            }
            return returnValue;
        });
        System.out.println(function.apply(localDate));
    }
}

时间和日期格式化—DateTimeFormatter

代码语言:javascript
复制
        //使用官方提供的日期格式:这里只列举一个,官方还提供了很多,大家可以自行尝试
        DateTimeFormatter dtf3=DateTimeFormatter.ISO_DATE;
        LocalDateTime now=LocalDateTime.now();
        String s = dtf3.format(now);
        System.out.println("官方格式化: "+s);
        System.out.println("-----------------------");
        DateTimeFormatter cus = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:ss:mm");
        String cusf = cus.format(now);
        System.out.println("自定义日期格式: "+cusf);
        System.out.println("--------------------------------");
        System.out.println("将格式化后的字符串转化为原来的字符串:");
        LocalDateTime newDate = now.parse(cusf, cus);
        System.out.println(newDate);
在这里插入图片描述
在这里插入图片描述

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 新时间与日期API
  • 新的时间和日期API
  • Instant : 时间戳
  • Duration计算时间间隔,Period计算日期间隔
  • 时间校正器
  • 时间和日期格式化—DateTimeFormatter
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档