JAVA-基础-常用API(时间日期类,Date,Dateformat,Calendar)

 Date

类 Date 表示特定的瞬间,精确到毫秒。

毫秒概念:1000毫秒=1秒

毫秒的0点:

System.currentTimeMillis()  返回值long类型参数

用于获取当前日期的毫秒值

时间的原点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0

注意:时间和日期的计算,必须依赖毫秒值

继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。

 String ToString()   把此Date 类型转换为以下形式 String down Mon dd hh:mm:ss zzz yyyy  已过时

 DateFormat.format(Date date)  

long getTime()   返回自 1970年1月1日 00:00:00 GMT 以来  此Date 对象表示的毫秒数

 DateFormat

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。

DateFormat 可帮助进行格式化并解析任何语言环境的日期。对于月、星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关。

DateFormat是抽象类,我们需要使用其子类SimpleDateFormat来创建对象。

构造方法:

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

DateFormat类方法:

String format(Date date)  将一个Date格式化为日期/时间 字符串

代码演示:
//创建日期格式化对象,在获取格式化对象时可以指定风格
DateFormat df= new SimpleDateFormat("yyyy-MM-dd");//对日期进行格式化
Date date = new Date(1607616000000L);
String str_time = df.format(date);
System.out.println(str_time);//2020年12月11日

l  DateFormat类的作用:即可以将一个Date对象转换为一个符合指定格式的字符串,也可以将一个符合指定格式的字符串转为一个Date对象。

指定格式的具体规则我们可参照SimpleDateFormat类的说明,这里做简单介绍,规则是在一个字符串中,会将以下字母替换成对应时间组成部分,剩余内容原样输出:

当出现y时,会将y替换成年

当出现M时,会将M替换成月

当出现d时,会将d替换成日

当出现H时,会将H替换成时

当出现m时,会将m替换成分

当出现s时,会将s替换成秒

把String转换成Date对象
    String str = ”2020年12月11日”;
    DateFormat df = new SimpleDateFormat(“yyyy年MM月dd日”);
    Date date = df.parse( str );
    //Date对象中的内容为Fri Dec 11 00:00:00 CST 2020

format方法,用来将Date对象转换成String

parse方法,用来将String转换成Date(转换时,该String要符合指定格式,否则不能转换)

Date parse(String source)

 

       Calendar

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

Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象,

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

Calendar c = Calendar.getInstance();-----------返回当前时间

 Calendar类常用方法

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

int get(int filed)  返回给定日历字段的值

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

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

void set (int filed ,int value)

西方星期的开始为周日,中国为周一。

在Calendar类中,月份的表示是以0-11代表1-12月。

日期是有大小关系的,时间靠后,时间越大。

1.1     求出自己已经出生多少天

思路:

1.获取当前时间对应的天数

         2.获取自己出生日期对应的天数

         3.两个时间相减(当前时间天数 – 出生日期天数)

代码实现:

public static void main(String[] args){

    Calendar my = Calendar.getInstance();

    Calendar c = Calendar.getInstance();

    //设置出生年月日 1995-05-10

    my.set(Calendar.YEAR, 1995);

    my.set(Calendar.MONTH, 4);

    my.set(Calendar.DATE, 10);

    //获取时间中的天数

    Calendar my = Calendar.getInstance();

    Calendar c = Calendar.getInstance();

    //设置年月日 2020-01-01

    my.set(Calendar.YEAR, 2020);

    my.set(Calendar.MONTH, 0);

    my.set(Calendar.DATE, 1);

    //获取时间中的天数

    int day = c.get(Calendar.DATE);

    int myDay = my.get(Calendar.DATE);

    System.out.println(myDay - day);

}

    int day = c.get(Calendar.DATE);

    int myDay = my.get(Calendar.DATE);

    System.out.println(day - myDay);

}

猜你喜欢

转载自www.cnblogs.com/zhangwei2065289/p/9225767.html