JAVA 日期类

1)Data类

Date类用来表示特定的瞬间它可以精确到毫秒。

构造方法

public Date() 表示自从标准基准时间(称为“历元(epoch,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
public Date(long date) 把一个long类型的毫秒值转换成一个日期对象
public long getTime(): 获取一个日期对象对象毫秒值
public void setTime(long time): 给一个日期对象设置上指定的毫秒值

成员方法

public class DateDemo {
    public static void main(String[] args) {
       // 类 Date 表示特定的瞬间,精确到毫秒。
        Date date = new Date();
        System.out.println(date.toString());
        //SSun Oct 28 20:45:47 CST 2018外国人的时间格式
        Date date2 = new Date(1000 * 60 * 60*24);
        System.out.println(date2.toString());//Fri Jan 02 08:00:00 CST 1970

        long l = System.currentTimeMillis();
        System.out.println(l);//1540730747742
        long time = new Date().getTime();//获取当前系统的毫秒值
        System.out.println(time);//1540730747742
        
        Date date1 = new Date();
        date1.setTime(1000 * 60 * 60 * 24);
        System.out.println(date1);//Fri Jan 02 08:00:00 CST 1970
    }
}

Date与long转换

Date---- long
long time = new Date().getTime();
long----date
Date date = new Date(1000L);

2)SimpleDateFormat类 格式化日期

SimpleDateFormat是日期格式化类,他可以将日期格式化为任意形式。

构造方法

public SimpleDateFormat():使用默认的模式来创建一个SimpleDateFormat对象
public SimpleDateFormat(String pattern):使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象。
规则的定义

y

M

d

H

m

s

E







星期

成员方法

public String format(Date date): 把一个日期对象格式化成一个字符串
public Date parse(String dateStr): 把一个日期字符串解析成一个日期对象 注意要以指定格式解析

public class MyDemo {
    public static void main(String[] args) throws ParseException{
        //使用的式默认格式 在格式化日期 18-10-28 下午8:56
        SimpleDateFormat format = new SimpleDateFormat();
     	System.out.println(format.toString());//java.text.SimpleDateFormat@b5341f2a
        
        //把当前日期格式化成一个日期字符串
        String date = format.format(new Date());
        System.out.println(date);//18-10-28 下午8:56
		
		//使用自定义格式的格式化日期
        SimpleDateFormat simp = new SimpleDateFormat("yyyy年MM月dd号 HH点mm分ss秒 E z");
        String format1 = simp.format(new Date());//format(new Date() 把当前的日期按照你指定的格式,格式化成字符串
        System.out.println(format1);//2018年10月28号 20点56分54秒 星期日 CST

		//解析字符串
		String dateStr = "2018-10-10 10:30:30";
        //ParseException 解析异常
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // public Date parse (String dateStr):把一个日期字符串解析成一个日期对象 注意要以指定格式解析
        Date date = simpleDateFormat.parse(dateStr);//把日期字符串 解析成日期对象 注意格式要对应
        System.out.println(date);//Wed Oct 10 10:30:30 CST 2018
    }
}

3)Calendar 类

Calendar 类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

日历字段

字段

表示

字段

表示

MONTH

月份

WEEK_OF_YEAR

当年中的周数

WEEK_OF_MONTH

当月中的周数

DAY_OF_MONTH

当月中的天数

DAY_OF_YEAR

当年中的天数

DAY_OF_WEEK

当周中的天数

DAY_OF_WEEK_IN_MONTH

当前月中的第几个星

AM_PM

HOUR 是在中午之前还是在中午之后

HOUR

小时

HOUR_OF_DAY

一天中的小时

MINUTE

一小时中的分钟

SECOND

一分钟的秒

MILLISECOND

一秒中的毫秒

ZONE_OFFSET

以毫秒为单位指示距 GMT 的大致偏移量

成员方法

public static Calendar getInstance() 使用默认时区和语言环境获得一个日历对象
//拿到Calendar类的对象
public int get(int field) 获得给定日历字段对应的值 field通过Calendar提供的字段来拿
public void add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量
public final void set(int year,int month,int date) 设置日历时间 年月日。

public class MyDemo {
    public static void main(String[] args) {
   		//通过 getInstance()得到对象。
        Calendar instance = Calendar.getInstance();
        //日历字段
        int i = instance.get(Calendar.YEAR);//2018
        int i1 = instance.get(Calendar.MONTH);//9
        int i2 = instance.get(Calendar.DAY_OF_MONTH);//28
        System.out.println(i);
        System.out.println(i1);
        System.out.println(i2);
        //设置日历的方法
        instance.set(2019,10,10);
        int y = instance.get(Calendar.YEAR);//2019
        int m = instance.get(Calendar.MONTH);//10
        int d = instance.get(Calendar.DAY_OF_MONTH);//10
        System.out.println(y);
        System.out.println(m);
        System.out.println(d);

		//add() 给某个日期字段(年月日等) 增减相应的时间量
		Calendar instance = Calendar.getInstance();
        instance.add(Calendar.YEAR,-1);
        int i = instance.get(Calendar.YEAR);//2017
        System.out.println(i);

    }
}