Java中几个关于时间的类
时间类
Java中使用1970.1.1 00:00:00作为时间原点,以毫秒值作为单位计时。
jdk1.1之后将有关时间的操作分为了三个类:
- Date(表示时间)
- DateFormat(改变时间显示格式)
- Calendar(修改操作时间)
Date类
表示时间
-
Date中的大多数方法都已经过时了,转移到了其他两个类中,它主要用来获得时间
-
构造方法:
- 无参的构造方法:
- 使用当前时间创建一个date对象
- 传入long类型的参数:
- 使用传入的参数作为毫秒值创建date对象
- 无参的构造方法:
-
两个常用方法:
-
返回值 方法名 说明 long getTime() 返回当前date对象表示的时间(从原点到现在的毫秒值) setTime(long time) 设置时间,传入一个毫秒值
DateFormat类
DateFormat用来进行Date对象与字符串之间的转换
-
他是一个抽象类,我们通常使用它的子类SimpleDateFormat类来进行格式转换。
-
首先了解日期和时间模式字符串:
- y代表年、M代表月、d代表日、H代表小时、m代表分钟、s代表秒
- E代表星期,h代表12进制的小时,S代表毫秒
-
SimpleDateFormat中的两个构造方法:
- 无参的构造方法
- 会使用默认的日期格式(yyyy/M/d 下午HH:mm)
- 参数为String的构造方法
- 使用传入的字符串格式
- 无参的构造方法
-
两个重要的方法:
-
返回值 方法名 说明 String format(Date date) 将一个date对象格式化为一个日期/时间字符串返回 Date parse(String source) 从给定的字符串中解析出一个date对象返回
Calendar日历类
Calendar类对YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法
-
是一个抽象类,创建时可以使用他的实现类GregorianCalendar,也可以调用它的静态方法getInstance创建对象
- Calendar calendar1 = new GregorianCalendar();
- Calendar calendar2 = Calendar.getInstance();
-
常用方法:
-
返回值 方法名 说明 int get(int field) 返回给定字段日历的值 add(int field,int amount) 修改日历字段的值,amount可以为负数 set(int year,int month,int date) 设置当前日历时间 setTime(Date date) 使用给定的date设置日历时间
举例:
public class Test{
public static void main(String[]args){
//日历类,是个抽象类
Date date3 = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date3);
//calendar.set(2020,8,8);
//Calendar类中有很逗静态的属性用来表示日历的值,使用get获取表示的年份
System.out.println("年:"+calendar.get(Calendar.YEAR));
//其中月份是从0开始算的,所以打印时要+1
System.out.println("月:"+(calendar.get(Calendar.MONTH)+1);
System.out.println("日:"+calendar.get(Calendar.DATE));
calendar.add(Calendar.YEAR,-1);
System.out.println("修改后的年:"+calendar.get(Calendar.YEAR));
}
}