美文网首页
日期时间API

日期时间API

作者: DOB_8199 | 来源:发表于2021-02-01 16:47 被阅读0次

(JDK8之前) 日期时间相关的API

1.System类中的currentTimeMillis()

返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差,称为时间戳。

用途

获取时间差,精确到毫秒。

long start = System.currentTimeMillis();

long end= System.currentTimeMillis();

时间差:end - start

2. Date类

java.util.Date和子类java.sql.Date

1)java.util.Date类

⭕️ 两个构造器的使用

构造器一

创建一个对应当前时间的Date对象

Date date1 =new Date();

System.out.println(date1);    //Sat Feb 16 16:35:31 GMT+08:00 2019

System.out.println(date1.getTime());    //1550306204104

构造器二

创建指定毫秒数的Date对象

Date date2 =new Date(155030620410L);

System.out.println(date2.toString());    //Sat Nov 30 16:03:40 CST 1974

⭕️ 两个方法的使用

>toString()

显示当前的年、月、日、时、分、秒

System.out.println(date1.toString());    //Sat Feb 16 16:35:31 GMT+08:00 2019

>getTime()

获取当前Date对象对应的毫秒数。(时间戳)

System.out.println(date1.getTime());    //1550306204104

2) java.sql.Date类

java.sql.Date对应着数据库中的日期类型的变量

⭕️ 如何实例化

java.sql.Date date3 =new java.sql.Date(35235325345L);

System.out.println(date3);    //1971-02-13

⭕️ 如何将java.util.Date对象转换为java.sql.Date对象

Date date6 =new Date();

java.sql.Date date7 =new java.sql.Date(date6.getTime());

3. SimpleDateFormat

SimpleDateFormat对日期Date类的格式化和解析

SimpleDateFormat的实例化

使用默认构造器:

SimpleDateFormat sdf =new SimpleDateFormat();

按照指定的方式格式化和解析:调用带参的构造器

SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

1.格式化:日期 --->字符串

Date date =new Date();

System.out.println(date);    // Tue Feb 02 13:09:52 CST 2021

String format = sdf.format(date);

System.out.println(format);    // 21-2-2 下午1:09

2. 解析:格式化的逆过程,字符串 ---> 日期

String str ="19-12-18 上午11:43";

Date date1 = sdf.parse(str);

System.out.println(date1);// Wed Dec 18 11:43:00 CST 2019

4. Calendar(抽象类)

实例化

方式一:创建其子类(GregorianCalendar)的对象

方式二:调用其静态方法getInstance()

                Calendar calendar = Calendar.getInstance();

                // System.out.println(calendar.getClass()); 结果表明它的类仍然是GregorianCalendar

常用方法

1. get()

获取该天是这个 月/年 的第几天

int days = calendar.get(Calendar.DAY_OF_MONTH); 

System.out.println(days);

System.out.println(calendar.get(Calendar.DAY_OF_YEAR));

2. set()

//calendar可变性

calendar.set(Calendar.DAY_OF_MONTH,22);  //将它改为这个月的第22天

days = calendar.get(Calendar.DAY_OF_MONTH);

System.out.println(days);

3. add()

calendar.add(Calendar.DAY_OF_MONTH,-3); // 将它减少为这个月的第22-3=19天

days = calendar.get(Calendar.DAY_OF_MONTH);

System.out.println(days);

4. getTime():    日历类---> Date

Date date = calendar.getTime(); //将日历类改为Date类 

System.out.println(date); 

5. setTime():    Date ---> 日历类

Date date1 =new Date();

calendar.setTime(date1);

days = calendar.get(Calendar.DAY_OF_MONTH);

System.out.println(days);

(JDK8) 日期时间相关的API

JDK8出现之前 JDK8新时间日期API 新时间日期API

LocalDate、LocalTime、LocalDateTime 的使用

1.LocalDateTime相较于LocalDate、LocalTime,使用频率要高

2.类似于Calendar

实例化

1. now():获取当前的日期、时间、日期+时间

LocalDate localDate = LocalDate.now(); // 2021-02-02

LocalTime localTime = LocalTime.now();    //14:49:05.981

LocalDateTime localDateTime = LocalDateTime.now();    //2021-02-02T14:49:05.981

2. of():设置指定的年、月、日、时、分、秒。没有偏移量

LocalDateTime localDateTime1 = LocalDateTime.of(2020, 10, 6, 13, 23, 43); // 2020-10-06T13:23:43

方法

1. getXxx():获取相关的属性 (eg. 这个月的第几天)

System.out.println(localDateTime.getDayOfWeek());    //TUESDAY

System.out.println(localDateTime.getMonth());    //FEBRUARY

System.out.println(localDateTime.getMonthValue());    // 2

System.out.println(localDateTime.getMinute());    //49

2. withXxx():设置相关的属性(不可变性-有返回值接收)

LocalDate localDate1 = localDate.withDayOfMonth(22);

System.out.println(localDate);    //2021-02-02

System.out.println(localDate1);    //2021-02-22

3. plusXxx():将相关的属性加上几个数(不可变性-有返回值接收)

LocalDateTime localDateTime3 = localDateTime.plusMonths(3);

System.out.println(localDateTime);    //2021-02-02T14:49:05.981

System.out.println(localDateTime3);    //2021-05-02T14:49:05.981

4. minusXxx():将相关的属性减去几个数(不可变性-有返回值接收)

LocalDateTime localDateTime4 = localDateTime.minusDays(6);

System.out.println(localDateTime);    //2021-02-02T14:49:05.981

System.out.println(localDateTime4);    //2021-01-27T14:49:05.981

相关文章

  • 日期时间API

    (JDK8之前) 日期时间相关的API 1.System类中的currentTimeMillis() 返回当前时间...

  • 新时间和日期API—— java8 新特性(5)

    新时间和日期API 使用

  • 《写给大忙人看的Java SE 8》——Java8新特性总结(二

    新的日期和时间 API Java8 引入了一个新的日期和时间API,位于java.time包下。新的日期和时间AP...

  • Java 8 新特性:日期时间包

    Java 8 新特性:日期时间包 一、是什么? java8引入了一套全新的时间日期API。 新的时间及日期API位...

  • Java 8 日期时间API

    Java 8一个新增的重要特性就是引入了新的时间和日期API,它们被包含在java.time包中。借助新的时间和日...

  • java 8 日期时间API

    java 8 之前的日期时间API实在太难用了,这也是joda-time的流行的直接原因。java 8 的新日期时...

  • java日期和时间API

    Java API中关于日期和时间,有三个主要的类。 ❑ Date:表示时刻,即绝对时间,与年月日无关。 ❑ Cal...

  • Java 8 日期/时间 API

    在 Java 8 之前,对于日期和时间的处理是能过 Date 和 Calendar 来完成的,因为长时间没接触 J...

  • Date、Error

    一、Date 什么是Date?封装日期和时间,提供操作日期和时间的API。何时使用日期对象?今后只要存储日期和时间...

  • Java 8 时间日期 API

    Java 8 时间日期 API Java 8 中新的时间与日期 API 中的所有类都是不可变且线程安全的,任何修改...

网友评论

      本文标题:日期时间API

      本文链接:https://www.haomeiwen.com/subject/bpmjtltx.html