木卯先生的笔记---Date类、DateFormat类和Calendar类

1.Date类

1.1 简介

  Date类是 java.util 包下面的类,表示特定的瞬间,精确到毫秒。

1.2 方法

  1.2.1 Date() 构造方法

    public Date() :分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 

1     /*Date类的空参数构造方法
2        Date()获取的就是当前系统的日期和时间
3     */
4     private static void demo01() {
5         Date date = new Date();
6         System.out.println(date);
7     }

  1.2.2 Date(long date)
    public Date(long date) :分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

1 private static void demo01() {
2         Date date = new Date(556235456000L);
3         System.out.println(date);//Tue Aug 18 06:50:56 CDT 1987
4     }

  1.2.3 getTime()

    public long getTime() : 把日期对象转换成对应的时间毫秒值。

1 private static void demo01() {
2         Date date = new Date(556235456000L);
3         System.out.println(date.getTime());//556235456000
4     }

2.DateFormat类

2.1 简介

  public abstract class DateFormat extends Format

  DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是Date对象转换为String对象)、解析(String对象转换为Date对象)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数。

2.2 方法

  2.2.1 构造方法

    因为DateFormat是一个抽象类,所以需要使用到他的子类java.text.SimpleDateFormat。它的构造方法需要一个字符串类型的参数pattern,来指定自定义的日期格式。

    构造方法为:public SimpleDateFormat(String pattern)

    其中,模式是区分大小写的,  y:年   M:月   d:日    H:小时    m:分   s:秒

    模式的格式举例:“ yyyy-MM-dd HH:mm:ss ”   " yyyy年MM月dd日 HH时mm分ss秒 "

  2.2.2 String format(Date date)

    使用DateFormat类中的方法format,把日期格式化为文本
String format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串
使用步骤:
1.创建SimpleDateFormat对象,构造方法中传递指定的模式
2.调用SimpleDateFormat对象中的format,按照构造方法指定的模式,把Date日期,格式化为符合模式的字符
1 private static void demo01() {
2         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
3         Date date = new Date();
4         String format = sdf.format(date);
5         System.out.println(date); //Wed Oct 23 20:09:38 CST 2019
6         System.out.println(format);//2019-10-23 20:09:38
7     }

  2.2.3 Date parse(String source)

    使用DateFormat类中的方法parse,把文本解析为日期

    Date parse(String source) 把符合模式的字符串,解析为Date日期
使用步骤:
1.创建SimpleDateFormat对象,构造方法中传递指定的模式
2.调用SimpleDateFormat对象中的format,按照构造方法指定的模式,把符合构造方法模式中的字符串,解析为Date日期
注意:
public Date parse(String source) throws ParseException
parse方法声明了一个异常叫ParseException解析异常
如果字符串和构造方法中的模式不一样,那么查程序就会抛出异常
调用一个抛出异常的方法,就必须处理这个异常,要么throws继续声明抛出这个异常,要么try...catch自己处理这个异常。
1 private static void demo02() throws ParseException {
2         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
3         Date parse = sdf.parse("2019-10-21 12:43:59");
4         System.out.println(parse);//Mon Oct 21 12:43:59 CST 2019
5 
6     }
 

3.Calendar类

3.1 简介 

  Calendar类是一个抽象类,它在 java.util 包下。Calendar类里边提供了很多操作日历字段的方法(YEAR、MONTH、DAY_OF_MONTH、

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

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

3.2 方法

  3.2.1 add(int field, int amount)

    public abstract void add(int field, int amount) :根据日历的规则,为给定的日历字段添加或减去指定的时间量。

    把指定的字段增加或减少指定的值,

    int amount :增加(整数)或者减少(负数)的值。

    int field:日历类的字段,可以使用Calendar类的静态成员变量获取

1 private static void demo03() {
2        
3         Calendar calendar = Calendar.getInstance();
4         calendar.add(Calendar.YEAR, 2);  //将年份增加2年
5         System.out.println(calendar.get(Calendar.YEAR));
6 
7     }

  3.2.2 set(int field, int value)

    public void set(int field, int value) :将给定的日历字段设置为给定值。

    参数:int value 传递的字段设置的具体的值

    int field:日历类的字段,可以使用Calendar类的静态成员变量获取

 1 private static void demo02() {
 2         
 3         Calendar calendar = Calendar.getInstance();
 4         calendar.set(Calendar.YEAR, 2020);
 5         int year = calendar.get(Calendar.YEAR);
 6         System.out.println(year);
 7 
 8         //calendar.set(2020,20,20);同时设置
 9 
10     }

  3.2.3 get(int field)

    public int get(int field) :返回给定日历字段的值。
    int field:日历类的字段,可以使用Calendar类的静态成员变量获取
1 private static void demo01() {
2         //使用getInstance获取Calendar对象
3         Calendar calendar = Calendar.getInstance();
4         int year = calendar.get(Calendar.YEAR);
5         System.out.println(year);
6 
7         int month = calendar.get(Calendar.MONTH);
8         System.out.println(month + 1);
9     }
 


    

 

猜你喜欢

转载自www.cnblogs.com/willow-zhu/p/11728713.html