前言
SimpleDateFormat 是日期格式化类,DateFormat(抽象类)是他的父类。
一、Date
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
public class SimpleDateFormat extends DateFormat
二、使用
1.构造器
SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
常用的是这两个,第二个非常常用
// 创建默认语言环境的日期格式
SimpleDateFormat sdf = new SimpleDateFormat();
// 创建给定格式的日期格式(年-月-日 时:分:秒)
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
2.常用方法
因为 SimpleDateFormat 类继承了 DateFormat 抽象类,抽象类中也有很多方法。我们常用的方法在抽象类DateFormat中。
2.1 格式化日期
format(Date date)
将一个 Date 格式化为日期/时间字符串。
格式化日期,返回的为当前时间 “年-月-日 时:分:秒” 格式。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 格式化日期
String format = sdf.format(new Date());
System.out.println(format);
2.2 日历
getCalendar()
获取与此日期/时间格式器关联的日历。
获取日历
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 获取日历
Calendar calendar = sdf.getCalendar();
2.3 解析时间
parse(String source)
从给定字符串的开始解析文本以生成日期。
String s = "2020-1-1";
Date date = sdf.parse(s);
3.计算两个日期之间的天数
给定两个字符串日期,算出两者相差天数。
String s1 = "2020-1-1", s2 = "2020-1-2";
Date d1 = sdf.parse(s1);
Date d2 = sdf.parse(s2);
long diff = (d1.getTime()-d2.getTime())/(1000*60*60*24);
System.out.println(Math.abs(diff));
最后
以下是常用的字母意义:更多详情请查看JDK API SimpleDateFormat。
字母 | 意义 |
---|---|
y | 年 |
M | 年中的月份 |
D | 年中的天数 |
d | 月份中的天数 |
w | 年中的周数 |
W | 月份中的周数 |
F | 月份中的星期 |
E | 星期中的天数 |
a | Am/pm 标记 |
H | 一天中的小时数(0-23) |
k | 一天中的小时数(1-24) |
K | am/pm 中的小时数(0-11) |
h | am/pm 中的小时数(1-12) |
m | 小时中的分钟数 |
s | 分钟中的秒数 |
S | 毫秒数 |
z | 时区 |
相关
更多常用类请查看:【Java SE 常用类】目录