Date类
java.util.Date类表示特定的瞬间,精确到毫秒。
public Date():创建Date对象,并返回创建该对象的时间。
public Date(毫秒值L):创建Date对象,并返回Long类型参数毫秒值表达的时间(标准时间1970年1月1日00:00:00 GMT的毫秒值为0)
public long getTime():把Date对象转换成对应的毫秒值。
/**
* @description: 测试日期类
* @author: Murphy
* @date: 2020/6/286:30 上午
*/
public class NewDate {
public static void main(String[] args) {
Date date = new Date();
Date date1 = new Date(158888888888L);
System.out.println(date);//Sun Jun 28 06:41:53 CST 2020
System.out.println(date1);//Tue Jan 14 07:48:08 CST 1975
System.out.println(date.getTime());//1593297713190
}
}
DateFormat类
Java.text.DateFormat类是日期格式化的抽象类,我们可以通过这个类来完成日期和文本之间的转换,也就是Date对象和String字符串之间的转换。
因为DateFormat是抽象类,不能直接创建对象,因此需要用常用子类java.text.SimpleDateFormat以多态的形式创建对象。
public SimpleDateFormat(String pattern):用给定的日期格式构造SimpleDateFormat,参数pattern是一个字符串,代表日期时间的自定义格式。
常用的格式规则:
标识字母 | 含义 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
常用方法:
①public String format(Date date):将Date对象格式化为字符串;
②public Date parse(String source):将格式化后的字符串解析成Date对象。
/**
* @description: 测试日期类
* @author: Murphy
* @date: 2020/6/286:30 上午
*/
public class NewDate {
public static void main(String[] args) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
Date date = new Date();
String format = dateFormat.format(date);
System.out.println(format);//2020年06月28日10时46分00秒
System.out.println(dateFormat.parse(format));//Sun Jun 28 10:46:00 CST 2020
}
}
Calendar类
java.util.Calendar类是日历类,在Date之后出现,替换掉了Date类中的许多方法,该类将所有可能用到的时间信息封装为静态的成员变量,方便获取。
Calendar类的作用:获取各个时间属性。
Calendar类是抽象类,不能直接创建对象,只能通过自身的静态方法来创建,返回子类对象。
public static Calendar getInstance():使用默认时区和语言环境获取一个日历。
常用方法:
①public int get(int field):返回给定日历字段的数值;
②public void set(int field,int value):将给定的日历字段设置为定值;
③public abstract void add(int field,int amount):将给定的日历字段增加或减去指定的时间量;
④public Date getTime():返回一个表示此Calendar对象时间值的Date对象。
在上面的方法中,field表示Calendar类的字段值。
Calendar类中提供很多成员常量,代表给定的日历字段。
字段值 | 含义 |
---|---|
YEAR | 年 |
MONTH | 月(从0开始,可以+1使用) |
DAY_OF_MONTH | 日(一个月中的第几天) |
HOUR | 时(十二小时制) |
HOUR_OF_DAY | 时(二十四小时制) |
MINUTE | 分 |
SECOND | 秒 |
DAY_OF_WEEK | 一周中的第几天(周天为1,可以-1使用) |
/**
* @description: 测试日期类
* @author: Murphy
* @date: 2020/6/286:30 上午
*/
public class NewDate {
public static void main(String[] args) throws ParseException {
Calendar calendar = Calendar.getInstance();
//获取日历的年份
int year = calendar.get(Calendar.YEAR);
System.out.println("year = " + year);//year = 2020
//将日历的年份设置为2030年
calendar.set(Calendar.YEAR, 2030);
//返回Date对象
Date date = calendar.getTime();
System.out.println("date = " + date);//date = Fri Jun 28 11:27:50 CST 2030
}
}