Date
- Date 表示特定的瞬间,精确到 毫秒
- 1 秒 = 1 000 毫秒
- 由于我们处于东八区,所以我们的基准时间为1970年1月1日8时0分0秒。
- 许多方法都已经过时
- 常用
getTime()
,表示当前时间的毫秒值
DateFormate
- 是日期/时间格式化子类的抽象类
- 格式化:按照指定的格式,从
Date
对象转换为String
对象。 - 解析:按照指定的格式,从
String
对象转换为Date
对象。 - DateFormat 为抽象类,不能直接使用,所以需要常用的子类
java.text.SimpleDateFormat
public SimpleDateFormat(String pattern)
- 这个类需要一个模式(格式)来指定格式化或解析的标准。
- 格式规则
常用的格式规则为yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒
标识字母(区分大小写) | 含义 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
常用方法
public String format(Date date) 将Date对象格式化为字符串。
public Date parse(String source) 将字符串解析为Date对象。
例:
format 方法的使用
Date date = new Date();
创建日期格式化对象,在获取格式化对象时可以指定风格
DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
String str = df.format(date);
System.out.println(str); // 2008年1月23日
parse方法的使用
DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
String str = "2018年12月11日";
Date date = df.parse(str);
System.out.println(date);
计算出生的天数
视频讲解的这个例子真心不错,将每个讲的知识点都用到了。
public static void main(String[] args) throws ParseException {
//Scanner sc = new Scanner(System.in);
System.out.println("输入出生日期:yyyy-MM-dd");
String birthDaySring = new Scanner(System.in).next();
//将字符串类型的日期转换为Date对象
SimpleDateFormat def = new SimpleDateFormat("yyyy-MM-dd");
//使用parase方法,将字符串转换为日期对象
Date birthDayDate = def.parse(birthDaySring);
//声明当前日期对象
Date nowDate = new Date();
//将日期转换为毫秒值
long birthDayLong = birthDayDate.getTime();
long nowDayLong = nowDate.getTime();
long secone = nowDayLong - birthDayLong;
if (secone < 0){
System.out.println("还没出生呢");
} else {
System.out.println(secone/1000/60/60/24);
}
}