Java中的时间类 Date、DateFormat、Calendar

1. Date

java.util.Date

public class Date extends Object implements Serializable, Cloneable, Comparable<Date>

类 Date 表示特定的瞬间,精确到毫秒。
1s = 1000 ms
Date类构造方法
Date()
分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 获取当前日期和时间。
Date(long date)
分配 Date 对象并初始化此对象,
以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
方法
long getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

public static void main(String[] args) {
//System.out.println(System.currentTimeMillis()); //获取的当前时间到1970-01-01 00:00:00 经历了多少毫秒
Date date = new Date();
System.out.println(date);//Fri Apr 03 16:13:19 CST 2020 得到 返回当前时间
System.out.println(date.getTime());//1585901599699
Date date1 = new Date(0L);
System.out.println(date1);//Thu Jan 01 08:00:00 CST 1970
Date date2 = new Date(1000L);
System.out.println(date2);//Thu Jan 01 08:00:01 CST 1970
}


2.DateFormat

public abstract class DateFormat extends Format 

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

  String format(Date date)
  将一个 Date 格式化为日期/时间字符串。 Date --> String
 
  Date parse(String source)
  从给定字符串的开始解析文本,以生成一个日期。 String --> Date

java.text.SimpleDateFormat

public class SimpleDateFormat extends DateFormat

构造方法:
SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。
参数:
String pattern 传递指定模式
y年 M月 d日 H时 m分 s秒
“yyyy-MM-dd HH:mm:ss”
模式中的字母不可以改变 字母可以改变

  private static void show01() {
        Format format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str = format.format(new Date());
        System.out.println(str); //2020-04-03 16:22:36
    }
 private static void show02() throws ParseException {
     DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     Date parse = format.parse("2014-02-23 12:12:12");
     System.out.println(parse); //Sun Feb 23 12:12:12 CST 2014
  }
  注意: 使用parse方法时,需要抛出ParseException异常

3.Calendar

public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar>    

Calendar 类是一个抽象类,
它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,
并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,
它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protected。
与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance, 以获得此类型的一个通用的对象。
Calendar 的 getInstance 方法返回一个 Calendar 对象,
其日历字段已由当前日期和时间初始化:
Calendar rightNow = Calendar.getInstance();
常用方法:

    /* int get(int field)
     返回给定日历字段的值。*/
    private static void show01(Calendar calendar) {
        int year = calendar.get(Calendar.YEAR);
        System.out.println(year);
        int month = calendar.get(Calendar.MONTH);
        System.out.println(month); //需要+1
        int day = calendar.get(Calendar.DATE);
        System.out.println(day);
    }
/* void set(int field, int value)
    将给定的日历字段设置为给定值。*/
    private static void show02() {
        Calendar calendar = Calendar.getInstance();
        //设置年
        calendar.set(Calendar.YEAR,2020);
        //设置月
        calendar.set(Calendar.MONTH,4);
        //设置日
        calendar.set(Calendar.DATE,3);

        calendar.set(2020,4,3);

        show01(calendar);
    }
 /*
       abstract  void add(int field, int amount)
       根据日历的规则,为给定的日历字段添加或减去指定的时间量。
       参数:
       int field: 日历类的字段,可以使用Calendar类的静态成员变量获取
       int amount: 增加/减少指定的值 正数增加 负数 减少

       */
    private static void show03() {
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.YEAR,0);
        calendar.add(Calendar.MONTH,9);
        calendar.add(Calendar.DATE,-1);
        show01(calendar);
    }

   /*
    Date getTime()
    返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
    把日历转换成日期类
    */
    private static void show04() {
        Calendar calendar = Calendar.getInstance();
        Date date = calendar.getTime();
        System.out.println(date);
    }
成员方法中的参数:
int field: 日历类的字段,可以使用Calendar类的静态成员变量获取
public final static int YEAR = 1; 年
public final static int MONTH = 2;月
public final static int DATE = 5; 月中的某一天
public final static int DAY_OF_MONTH = 5; 月中的某一天
public final static int HOUR = 10; 时
public final static int MINUTE = 12; 分
public final static int SECOND = 13; 秒
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值