日期时间类
一、Date类
1.本节介绍
(1)Date类两个构造方法(无参与有参)
(2)Date类的一个成员方法getTime
(3)格式化类DateFormat(抽象类)的子类SimpleDateFormat的两个成员方法:format方法与parse方法
2.Date类的构造方法:
(1)无参 Date():可以用来访问系统当前时间
import java.util.Date;
public class Date类 {
public static void main(String[] args) {
Date date=new Date();
System.out.println(date);
}
}
运行结果:
Wed Nov 10 15:06:13 CST 2021
(2)有参 Date(long date):可以访问自基准时间(1970年1月1日00:00:00 GMT)起经过指定毫秒数date过后的时间
import java.util.Date;
public class Date类 {
public static void main(String[] args) {
Date date=new Date(0L);
System.out.println(date);
}
}
运行结果:
Thu Jan 01 08:00:00 CST 1970
3.Date类的getTime方法:返回自1970年1月1日 00:00:00 GMT以来此Date对象表示的毫秒数
import java.util.Date;
public class Date类 {
public static void main(String[] args) {
Date date=new Date();
long time=date.getTime();
System.out.println(time);
}
}
运行结果:
1636528911694
4.格式化DateFormat类(抽象类):
(1)子类SimpleDateFormat
<1>format方法
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* y 年
* M 月
* d 日
* H 时
* m 分
* s 秒
*/
public class Date类 {
public static void main(String[] args) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date date=new Date();
String d=sdf.format(date);
System.out.println(date);
System.out.println(d);
}
}
运行结果:
Wed Nov 10 15:32:21 CST 2021
2021年11月10日 15时32分21秒
<2>parse方法:将字符串解析成一个日期,并返回这个日期的Date对象
注意:字符串格式要遵循SimpleDateFormat格式,否则报错;要进行异常处理
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class Date类 {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date date=sdf.parse("2021年11月10日 15时32分21秒");
System.out.println(date);
}
}
运行结果:
Wed Nov 10 15:32:21 CST 2021
二、Calendar日历类(抽象类)
1.本节介绍:
(1)Calendar抽象类创建对象方法
(2) Calendar类的字段
(3)Calendar类的四个成员方法
2.出现缘由:由于Date类设计之初没有考虑到国际化,因而大部分方法已经过时,现在大部分使用Calendar类
3.创建对象(运用):运用getInstance方法
Calendar c=Calendar.getInstance();
4.Calendar类成员方法
字段(field)如下:
| 字段名 | 说明 |
| DATE | get和set的字段数字,指示一个月中的某天 |
| DAY_OF_MOUTH |
get和set的字段数字,指示一个月中的某天 |
| DAY_OF_WEEK | get和set的字段数字,指示一个星期中的某天 |
| DAY_OF_WEEK_IN_MONTH | get和set的字段数字,指示当前月中的第几星期 |
| DAY_OF_YEAR | get和set的字段数字,指示当前年中的天数 |
| HOUR | get和set的字段数字,指示上午或下午的小时 |
| HOUR_OF_DAY | get和set的字段数字,指示一天中的小时 |
| MILLISECOND | get和set的字段数字,指示一秒中的毫秒 |
| MINUTE | get和set的字段数字,指示一小时中的分钟 |
| MOUNT | 指示月份的get和set数字 |
| SECOND | get和set的字段数字,指示一分钟的秒 |
| time | 日历的当前设置时间,以毫秒为单位,表示1970年1月1日00:00:00后经过的时间 |
| WEEK_OF_MONTH | get和set的字段数字,指示当前月中的星期数 |
| WEEK_OF_YEAR | get和set的字段数字,指示当前年中的星期数 |
| YEAR | 指示年的get和set的字段数字 |
(1)public int get(int field) 获取日历中字段的值
public class Date类 {
public static void main(String[] args) {
Calendar c=Calendar.getInstance();
int year=c.get(Calendar.YEAR);
System.out.println(year);
int month=c.get(Calendar.MONTH);
System.out.println(month);//月份从0-11
int date=c.get(Calendar.DATE);
System.out.println(date);//10日
System.out.println("今天是"+year+"年"+(month+1)+"月"+date+"日");
}
}
运行结果:
2021
10
10
今天是2021年11月10日
(2)public void set(int field,int value) 给日历设置时间
import java.util.Calendar;
public class Date类 {
public static void main(String[] args) {
Calendar c=Calendar.getInstance();
c.set(Calendar.YEAR,2001);
c.set(Calendar.MONTH, 10);
c.set(Calendar.DATE,02);
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH);
int date=c.get(Calendar.DATE);
System.out.println(year+"年"+month+"月"+date+"日");
}
}
运行结果:
2001年10月2日
(3)public abstract void add(int filed,int amount) 在给定日历字段添加或减去指定时间
import java.util.Calendar;
public class Date类 {
public static void main(String[] args) {
Calendar c=Calendar.getInstance();
c.add(Calendar.YEAR, 5);
int year=c.get(Calendar.YEAR);
System.out.println("现在的时间增加5年:"+year);
}
}
运行结果:
现在的时间增加5年:2026
(4)public Date getTime() 将日历转换成日期
public class Date类 {
public static void main(String[] args) {
Calendar c=Calendar.getInstance();
Date date=c.getTime();
System.out.println(date);
}
}
运行结果:
Wed Nov 10 16:59:25 CST 2021
浙公网安备 33010602011771号