Date类、Calendar类

Date类

Date类表示系统特定的时间戳,可以精确到毫秒。Date对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。

  • Date():创建对象获取本地的当前时间,精确到毫秒
  • Date(long date):创建对象,表示从GMT时间(格林尼治时间)1970年1月1日0时0分0秒经过参数date指定的毫秒数;GMT时间早于中央标准时间(CST)8小时

Calendar类

日历类,主要来获取日历中某个时间段;

Calendar类是一个抽象类,它为特定瞬间与YEAR、MONTH、DAY_OF—MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法;

创建Calendar对象无法使用new,它提供了一个getInstance()方法来获得Calendar类的对象。

Calendar calendar = Calendar.getInstance();
        // 年月日 时分秒
        //int get(int field) --->返回给定日历字段的值。
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH)+1;// [0,11]
        int day = calendar.get(Calendar.DATE);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);// 24小时制
        int minute = calendar.get(Calendar.MINUTE);
        int second = calendar.get(Calendar.SECOND);
        System.out.println(year+"年"+month+"月"+day+"日"+" "           +hour+":"+minute+":"+second);//2022年8月10日 17:52:42

 

Java日期格式化

格式化日期表示将日期/时间格式转换为预先定义的日期/时间格式。可以使用DateFormat类和SimpleDateFormat类来格式化日期。

DateFormat类

DateFormat是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期、时间。日期/时间格式化子类(如SimpleDateFormat)允许进行格式化(日期--->文本)、解析(文本--->日期)和标准化日期。

在创建Dateformat对象时不能使用new关键字,而是使用DateFormat类中的静态方法:DateFormat df = DateFormat.getDateInstance();

SimpleDateFormat类

如果使用Dateformat类格式化日期无法满足需求,那么就需要使用Dateformat类的子类——SimpleDateFormat

SimpleDateFormat是一个以与语言环境有关的方式来格式化、解析日期的具体类,它运行进行格式化(日期--->文本)、解析(文本--->日期)和规范化。SimpleDateFormat使得可以选择任何用户定义的日期/时间格式的模式。

  • SimpleDateFormat类有3种构造方法:
  • SimpleDateFormat():默认构造
  • SimpleDateFormat(String pattern):用指定的格式和默认的语言环境构造
  • SimpleDateFormat(String pattern , Locale locale):用指定的格式和指定的语言环境构造

字母

含有

示例

y

年份。一般yy表示两位年份,yyyy表示4位年份

如:11;2011均表示2011年

M

月份。一般MM表示月份,MMM根据语言环境显示不同语言的月份

MM,如:05;MMM在Locale.CHINA语言环境下如“十月”;在Locale.US语言环境下,如Oct

d

月份中的天数。dd表示

如:25

D

年份中的天数,用D表示

如:341

E

星期几。用E表示,会根据不同语言环境显示不同语言的星期几

Locale.CHINA语言环境下“星期四”;在Locale.US语言环境下,Thu

H

一天中的小时数(0~23)。HH表示

如:21

h

一天中的小时数(1~12)。hh表示

如:10(可能是10点,也有可能是22点)

m

分钟数。mm表示

如:29

s

秒数。ss表示

如:38

S

毫秒数。SS表示

如:11