Java:日期时间转换与格式化
2020-08-12 21:28:58
一、Java中时间类
1、Date类
Date常用的构造函数:
Date()生成一个代表当前日期时间的Date对象,相当于Date(System.currentTimeMillis())
Date(long date) 指定时间戳,默认单位ms。距1970.1.1 00:00:00的毫秒数。
Date常用方法:
boolean after(Date date) 判断是否在该时间日期之后
boolean before(Date date)
long getTime() 获取时间戳
void setTime() 设置时间戳
少用Date,尽量用Calendar代替。
2、Calendar类
Calendar类常用方法:
Calendar calendar=Calendar.getInstance(); 使用静态方法获取实例,默认为当前的时间日期
calendar.get(Calendar.YEAR) 获取指定字段的值,参数为预定义的常量,返回值均为int。月份比较特殊,0-11,0表示1月。
calendar.set(Calendar.YEAR,2020); 设置指定字段的值calendar.set(2020,1,1); 同时设置年月日
calendar.set(2020,1,1,1,1,1); 同时设置年月日时分秒
calendar.add(Calendar.YEAR,2); 增加指定字段的值
calendar.add(Calendar.YEAR,-1); 可以为负数
参数、返回值均为int型。
3、LocalDate类:代表当前时区的日期(Java8)
4、LocalTime类:代表当前时区的时间(Java8)
5、LocalDateTime:代表当前时区的日期时间(Java8)
6、获取时间戳的方法
(1)System.currentTimeMillis()
(2)new Date().getTime()
(3)Calendar.getInstance().getTimeInMillis(); //耗时较多
二、日期时间转换
1.java.sql.Date和java.util.Date相互转化:
//sql---->util
java.util.Date d=new java.sql.Date(1472025220343L);
System.out.println(d);//子类赋给父类 ,直接转换就行了!
//util--->sql
java.sql.Date d2=new java.sql.Date(new java.util.Date().getTime());
System.out.println(d2);
2.String----Date
DateFormat df=new SimpleDateFormat("yy