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 |