日期类(Date) (SimpleDateFormat) (Calendar)

一、Date类

概述与构造方法

Date代表了一个特定的时间,精确到毫秒

方法名 说明
public Date() 分配一个Date对象,并初始化,以便代表它被分配的时间,精确到毫秒
public Date(long date) 分配一个Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数

Date类的常用方法

方法名 说明
public long getTime() 获取的是日期对象从1970年1月1日00:00:00到现在的毫秒值
public void setTime(long time) 设置时间,给的是毫秒值

二、SimpleDateFormat类(重点)

SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。我们重点学习日期格式化和解析

日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从’A’到’Z’以及从’a’到’z’引号的字母被解释为表示日期或时间字符串的组件的模式字母

常用的模式字母以及对应关系如下:

字母 对应关系
y
M
d
H
m
s

构造方法

方法名 说明
public SimpleDateFormat() 构造一个SimpleDateFormat,使用默认模式和日期格式
public SimpleDateFormat(String pattern) 构造一个SimpleDateFormat使用给定的模式和默认的日期格式

SimpleDateFormat格式化和解析日期

  1. 格式化(从Date到String)

将日期格式化成日期/时间字符串

1
public final String format(Date date)

  1. 解析(从String到Date)

从给定字符串的开始解析文本以生成日期

1
public Date parse(String source)

案例

日期工具类

需求:定义一个日期工具类(DateUtils),包含两个方法:

  • 把日期转换为指定格式的字符串;
  • 把字符串解析为指定格式的日期

然后定义一个测试类,测试日期工具类的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package Date_;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtils {
/* 工具类

构造方法私有
成员方法静态 */

private DateUtils(){};
//把日期转为指定格式的字符串
public static String dateToString(Date d,String format){
SimpleDateFormat sdf=new SimpleDateFormat(format);
String s=sdf.format(d);
return s;
}
//字符串解析为指定格式的日期
public static Date StringToDate(String s,String format) throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat(format);
Date d=sdf.parse(s);
return d;
}

}

三、Calendar类

Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法

Calendar提供了一个类方法getInstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化:

1
Calendar rightNow=Calendar.getInstance();

Calendar的常用方法

方法名 说明
public int get(int field) 返回给定日历字段的值
public abstract void add(int field,int amount) 根据日历的规则,将指定的时间量添加或减去给定的日历字段
public final void set(int year,int month,int date) 设置当前日历的年月日

案例:二月天

需求:获取任意一年的二月有多少天

请我喝杯咖啡吧~

支付宝
微信