1.第一代日期类
① Date类:精确到毫秒,代表特定的瞬间
public static void main(String[] args) {
// 获取当前系统时间
// 这里的Date类是在java.util包
// 默认输出的格式是国外的格式Date date = new Date();System.out.println(date);}
由于默认的日期格式是国外的,很多时候,我们要对日期格式进行修改,所以就有了SimpleDateFormat类。
Date类还有一个构造方法,通过输入距离1970年1月1日的总秒数,获取那个时候的时间;
Date date = new Date(171110232);System.out.println(date);
② SimpleDateFormat类
简介:格式和解析日期的类
public static void main(String[] args) {
// 获取当前系统时间
// 这里的Date类是在java.util包
// 默认输出的格式是国外的格式Date date = new Date();System.out.println(date);SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");System.out.println(simpleDateFormat.format(date));}
当然,这个SimpleDateFormat还能将一个表示时间的字符串转成Date对象;
说到底,SimpleDateFormat就是一个格式类,创建对象的时候,要给定一个格式,它能把Date对象转成你想要的格式,也能把这个格式的字符串解析成Date对象。
public static void main(String[] args) throws ParseException {String str="1975年01月01日 10:20:30 周一";SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");Date parse = simpleDateFormat.parse(str);System.out.println(parse);}
2.第二代日期类
① Calendar类
Calendar类是个抽象类,并且构造器是私有的;这意味着不能通过new来创建其对象,也无法使用子类继承来实现其方法;
// 通过getInstance()来获取实例Calendar instance = Calendar.getInstance();System.out.println(instance);
Calendar 没有专门的格式化方法,它是一股脑把所有信息都输出来,需要程序员自己去找需要的字段来组合;
通过get( )方法来获取字段
以上的小时是12小时制的,如果想改成24小时制,则需要改成Calendar.HOUR_OF_DAY
3.第三代日期类
LocalDateTime 类
由于前两代日期类都存在一定的问题,所以第三代日期类在JDK8时横空出世;
// 1.使用now() 返回一个表示当前日期时间的对象LocalDateTime now = LocalDateTime.now();System.out.println(now);