Java - 时间类
Date类
系统时间
long time = System.currentTimeMillis();
System.out.println(time);
time = time + (long)24*60*60*30*1000; //ms
System.out.println(time); //其实是错误的
time = time + 24L *60*60*30*1000; //请务必加上L
System.out.println(time);
创建Date对象
Date date = new Date();
System.out.println(date); //已经重写了toString方法
//Sat Apr 27 15:19:07 CST 2019
常用方法
- setTime
- getTime
- after / before 判断两个时间的前后关系
DateFormat类
DateFormat 是日期 / 时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
- 这是一个抽象类,不能直接创建实例化对象
- 属于 java.text.DateFormat ,使用时需要导包
SimpleDateFormat 类
- 继承自 DateFormat 类
- 用 String 给定的模式和默认语言环境的日期格式符号构造
SimpleDateFormat
常用方法
- format 将Date格式化想要的样子
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss a E");
System.out.println(date);
//使用指定的格式
String dateStr = sdf.format(date); //返回类型是String
System.out.println(dateStr);
Calendar类
从 JDK 1.1 开始逐步替代 Date 类,其实本身就是一个日历,包含了日历中所有的时间
Calendar是一个抽象类,提供了可以获得 Calendar 对象的静态方法
- Calendar 类有构造方法,但是是由 protected 修饰的,通常无法访问到,所以要用方法来进行实例化,通常使用默认方法 getInstance() 来获取对象 ,用来构建一个系统当前时间的对象
add() - 推算时间点
cal.add(Calendar.WEEK_OF_MONTH,1); //下一个周 System.out.println(cal.getTime());
注:默认推算时间是往后推算,加上-
可以往前推算
set() -设置时间点
cal.set(Calendar.DAY_OF_WEEK,4); //跳转到本周的周四 System.out.println(cal.getTime());
- get() -获得时间点
cal.get(Calendar.MONTH)
月份从0开始
一周从周日开始
TimeZone 类
- 属于 java.util 包
- 可以通过 Calendar 实例对象 getTimeZone 方法来获取
常用方法
- tz.getID() 获取时区名
- tz.getDisplayName()