时间日期类

java.util.Date  类:

表示特定的瞬间,精确到毫秒;

构造方法

public Date()  : 分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒),使用无参构造,可以自动设置当前系统时间的毫秒时刻 ;

package dateDemo;

import java.util.Date;

public class Demo01 {
    public static void main(String[] args) {
        Date  d = new Date();
        System.out.println(d);  // 打印结果:Thu Aug 09 19:04:51 CST 2018
    }
}

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

package dateDemo;

import java.util.Date;

public class Demo01 {
    public static void main(String[] args) {
        Date  d = new Date(1589656971521L);
        System.out.println(d);  // 打印结果:Sun May 17 03:22:51 CST 2020
    }
}

    ps: 我国处在东八区,所以我国的基准时间为1970年1月1日8时0分0秒,使用println() 方法时,会自动调用Date类中的toString方法。Date类对Object类中的toString方法进行了覆盖重写,所以结果为指定格式的字符串。    

常用方法:大多数已经淘汰 ,被  Calendar 代替

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

package dateDemo;

import java.util.Date;

public class Demo01 {
    public static void main(String[] args) {
        Date  d = new Date();
        long time = d.getTime();
        System.out.println(time);  // 打印结果:1533813837553
    }
}

java.text.DateFormat  类:

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。

格式化: 按照指定的格式,将 Date对象转化为 String对象

解析: 按照指定的格式,将 String对象转化为 Date对象

构造方法:

由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat。这个类需要一个模式(格式)来指定格式化或解析的标准。构造方法为:

public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。

参数pattern是一个字符串,代表日期时间的自定义格式。

package dateDemo;

import java.text.SimpleDateFormat;

public class Demo01 {
    public static void main(String[] args) {
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");//其中字母严格区分大小写
    }
}

常用方法:

public  String  format(Date date) : 将 Date对象转化为 String对象;

package dateDemo;

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

public class Demo01 {
    public static void main(String[] args) {
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");//其中字母严格区分大小写
        Date d = new Date();
        String s = sdf.format(d);
        System.out.println(s);
    }
}

public  Date  parse(String  str) : 将字符串解析为 Date对象;

package dateDemo;

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

public class Demo01 {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");//其中字母严格区分大小写
        String s = "1995年10月18日 06时24分36秒";
        Date date = sdf.parse(s);
        System.out.println(date); //Wed Oct 18 06:24:36 CST 1995
    }
}

java.util.Calendar 类:

日历类在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。

Calendar为抽象类,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象,

Calendar静态方法

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

package dateDemo;

import java.util.Calendar;

public class Demo01 {
    public static void main(String[] args) {
        Calendar ca = Calendar.getInstance();
    }
}

常用方法:

public int get(int field):返回给定日历字段的值。

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

package dateDemo;

import java.util.Calendar;

public class Demo01 {
    public static void main(String[] args) {
        Calendar ca = Calendar.getInstance();
        ca.set(1995,10-1,18,6,30,24);
        
        int year = ca.get(Calendar.YEAR); //获得年
        System.out.println(year);
        int month = ca.get(Calendar.MONTH) + 1; //获得月   (从0开始,可以+1使用)
        System.out.println(month);
        int day = ca.get(Calendar.DAY_OF_MONTH); // 获得日
        System.out.println(day);
        int week = ca.get(Calendar.DAY_OF_WEEK) - 1; //获得星期  (周几,周日为1,可以-1使用)
        System.out.println(week);
        int hour = ca.get(Calendar.HOUR_OF_DAY); //获得 小时   (24小时制)
        System.out.println(hour);
        int minute = ca.get(Calendar.MINUTE); //获得 分钟
        System.out.println(minute);
        int second = ca.get(Calendar.SECOND); //获得 秒
        System.out.println(second);
    }
}

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

package dateDemo;

import java.util.Calendar;

public class Demo01 {
    public static void main(String[] args) {
        Calendar ca = Calendar.getInstance();
        ca.add(Calendar.DAY_OF_MONTH,5);
        System.out.println(ca.get(Calendar.DAY_OF_MONTH));
    }
}

public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

package dateDemo;

import java.util.Calendar;
import java.util.Date;

public class Demo01 {
    public static void main(String[] args) {
        Calendar ca = Calendar.getInstance();
        Date time = ca.getTime();
        System.out.println(time);
    }
}

猜你喜欢

转载自blog.csdn.net/yuwotongle1018/article/details/81542419