日期类

Posted 勿忘初心的小小柏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日期类相关的知识,希望对你有一定的参考价值。

java8引入了一套全新的时间日期API

一、LocalDate类:LocalDate是一个不可变的日期时间对象,表示日期,通常被视为年月日。 也可以访问其他日期字段,例如日期,星期几和星期。 例如,值“2007年10月2日”可存储在LocalDate 。

方法:

1、获取当前的年月日 public static void now();

LocalDate Time = LocalDate.now();

                  System.out.println(Time);

2、输出指定的年月日:

a)       public static LocalDate of(int year,int month,int dayOfMonth)

b)       public static LocalDate of(int year,Month month,int dayOfMonth)

TestSystem.out.println(LocalDate.of(2018, 5, 20));//输出2018-05-20

3、单独输出当前的年月日

System.out.println("当前的年份是:"+LocalDate.now().getYear()); //2017

System.out.println("当前的月份是:"+LocalDate.now().getMonthValue());//6

System.out.println("当前的日期是:"+LocalDate.now().getDayOfMonth());//13

4、输出以前或者未来的日期

System.out.println("五天后:" + LocalDate.now().plusDays(5));

                          System.out.println("五周后:" + LocalDate.now().plusWeeks(5));

                          System.out.println("五月后:" + LocalDate.now().plusMonths(5));

                          System.out.println("五年后:" + LocalDate.now().plusYears(5));

二、MonthDay:MonthDay是一个不变的日期时间对象,代表一年和一个月的组合。 可以获得可以从月和日派生的任何字段,例如四分之一年份。

该类不存储或代表一年,一个或多个时区。 例如,值“12月3日”可以存储在MonthDay 。

由于MonthDay没有一年,所以2月29日的闰天被认为是有效的。

需求:判断今天是不是你的生日?

//第一步:录入自己的生日信息。

                  LocalDate birthday = LocalDate.of (1994,6,8);

                  //第二步:录入当前日期

                   MonthDay at = MonthDay.now();

                  //把生日信息转换成只保留月份和日期

                   MonthDay up = MonthDay.from(birthday);

                 

                  if(up.equals(at)){

                          System.out.println("今天是你的生日!");

                  }else{

                          System.out.println("今天不是你的生日!");

                  }

三、LocalDateTime类:LocalDateTime是一个不可变的日期时间对象,代表日期时间,通常被视为年 - 月 - 日 - 时 - 分 - 秒。 也可以访问其他日期和时间字段,例如日期,星期几和星期。 时间表示为纳秒精度。 例如,值“2007年10月2日在13:45.30.123456789”可以存储在LocalDateTime 。

 

//获取当前的年---小时-分钟--纳秒

                  System.out.println(LocalDateTime.now());

控制台输出当前系统时间

                  //输出指定的年---小时-分钟-

                  System.out.println(LocalDateTime.of(2020,10,8,18,56,32));

控制台输出2020-10-08T18:56:32

四、LocalTime类:LocalTime是一个不可变的日期时间对象,代表一个时间,通常被看作是小时 - 秒。 时间表示为纳秒精度。 例如,值“13:45.30.123456789”可以存储在LocalTime 。

它不存储或表示日期或时区。 相反,它是在挂钟上看到的当地时间的描述。 它不能代表时间线上的即时信息,而没有附加信息,如偏移或时区。

 

五、SimpleDateFormatDeatFormat的子类,支持--自定义格式模式。

         自定义格式严格遵循规范:y 表示年,M表示月,d表示日,H表示时,m表示分,s表示秒,E表示星期

        //自动以格式化结构

        String petter = "y年M月d日 H:m:s E";

        //创建对象并把结构赋给该对象。

        SimpleDateFormat time = new SimpleDateFormat(petter);

//      time.applyPattern(petter); 可以在构造方法定义模式,也可以用applyPattern(String MOSHI)来申请一个模式。

        //利用format进行格式转换成字符串。

        String times = time.format(new Date());

        //输出

        System.out.println(times);

        //解析,按照什么风格格式化的,就按照什么什么风格格式回去

        Date a = time.parse(times);

        System.out.println(a);

控制台输出:

2017年6月13日 16:2:28 星期二

Tue Jun 13 16:02:28 CST 2017

以上是关于日期类的主要内容,如果未能解决你的问题,请参考以下文章

日期类时间类,日期时间类,单例模式,装箱与拆箱,数字类随机数,BigDecimal总结

有了这个日期工具类,让日期转化不再烦恼

Java的日期类和日期格式化类

简易日期类

用java实现日期类的加减

Date日期类,Canlendar日历类,Math类,Random随机数学类