日期时间类-Java

1. Date类

日期转换为毫秒

  • 获取当前系统时间到1970.1.1 08:00:00(中国)经历了多少毫秒

    1
    System.out.println(System.currentTimeMillis());
  • 将日期对象转换为毫秒

    1
    date.getTime()

Date类构造方法

  • Date date = new Date();//获取当前系统时间
    System.out.println(date);
    
    1
    2
    3
    4
    5
    6
    7

    * 带参构造:传毫秒值

    ```java
    Date date1 = new Date(0);
    System.out.println(date1);
    //Thu Jan 01 08:00:00 CST 1970

SimpleDateFormat类

  • DateFormat是一个抽象类,无法直接创建对象使用,可以使用其子类SimpleDateFormat

  • 模式中常用格式规则:y(年)、M(月)、d(日)、H(时)、m(分)、s(秒)

    eg. yyyy-MM-dd HH:mm:ss 或者 yyyy年MM月dd日 HH时mm分ss秒

  • 格式化:按照指定的模式,将日期转换成文本String format (Date date)

1
2
3
4
5
6
7
8
public static void main(String[] args) {
//指定模式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
//创建日期类
Date date = new Date();
//格式输出
System.out.println(sdf.format(date));
}
  • 解析:将符合模式的文本解析成日期Date parse(String source) ,若参数source不符合模式则会产生异常。
1
2
3
4
5
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date date = sdf.parse("2020年08月21日 11时20分11秒");
System.out.println(date);
}

2. Calendar类

  • Calendar类是一个抽象类,里面提供了很多操作日历字段的方法(YEAR,MONTH,DAY_OF_MONTH,HOUR,MINUTE,SECOND)

  • Calendar类无法直接创建对象使用,里面有一个静态方法叫**getInstance()**,该方法返回了Calendar类的子类对象。

    static Calendar getInstance() 使用默认时区和语言环境获得一个日历

1
2
Calendar calendar = Calendar.getInstance();//获取一个日历对象
System.out.println(calendar);

常用方法

1
2
3
4
5
6
7
8
9
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
System.out.println(year);
calendar.set(Calendar.YEAR,1998);
calendar.set(1998,7,1);
calendar.add(Calendar.YEAR,-1);
Date date = calendar.getTime();
}