Java时间 日期 日历

Date类

API上对Date类的解释

类 Date 表示特定的瞬间,精确到毫秒。
在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。
它也允许格式化和解析日期字符串。不过,这些函数的 API不易于实现国际化。
从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃。

构造方法

Date()
//以当前时间来构造一个Date对象
Date(long date)
//传入1970年1月1日00:00:00起的毫秒数构造一个Date对象

方法

after(Date when)
//测试此日期是否在指定日期之后
//返回布尔类型 同样的日期对比返回false

before(Date when) 
//测试此日期是否在指定日期之前
//返回布尔类型 同样的日期对比返回false

clone()
//返回此Date对象的副本
//返回Object类型

compareTo(Date anotherDate)
//比较Date对象
//返回int 相等则返回0 小于传入的Date返回-1 大于则返回1

equals(Object obj)
//比较两个Date日期是否相等 
//返回布尔类型 仅当参数非null 且是Date对象 时间点相同时返回true

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

setTime(long time)
//设置自1970年1月1日以来 Date对象表示的00:00:00 GMT的毫秒数

DateFormat类

API上对SimpleDateFormat类的解释

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

方法

主要方法

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

clone() 
//创建此 DateFormat 的一个副本
//返回Object类型
抽象类不能实例化 通过以下方法获得DateFormat对象
//此对象含有特定时间/日期格式
//此对象调用format parse方法来对 文本 Date对象 进行相互转换

getInstance()
//获取使用 SHORT 风格的默认日期/时间格式器
//格式:2018/8/10 下午3:00
getDateInstance()
//获取日期格式器
//格式:2018年8月10日
getTimeInstance()
//获取时间格式器
//格式:下午3:00:00
getDateTimeInstance()
//获取日期/时间格式器
//格式:2018年8月10日 下午3:00:00

重载
//给定格式化风格
getDateInstance(int style)
getTimeInstance(int style)
getDateTimeInstance(int style)
//传入DateFormat字段
SHORT 完全为数字,如 12.13.523:30pm 
MEDIUM 较长,如 Jan 12, 1952  
LONG 更长,如January 12, 19523:30:32pm  
FULL 完整长度,如 Tuesday、April 121952 AD 或 3:30:42pm PST。

//给定语言环境 给定格式化风格
getDateInstance(int style, Locale aLocale)
getTimeInstance(int style, Locale aLocale)
getDateTimeInstance(int style, Locale aLocale)
//Locale对象表示了特定的地理、政治和文化地区。

SimpleDateFormat类

API上对SimpleDateFormat类的解释

SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

构造方法

SimpleDateFormat() 
//默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
//格式: 2018/8/10 下午3:00

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

SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols) 
//用给定的模式和日期符号构造 SimpleDateFormat

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

日期格式符
/*
    G   Era 标志符 
    y   年   
    M   年中的月份
    w   年中的周数
    W   月份中的周数
    D   年中的天数
    d   月份中的天数  
    F   月份中的星期
    E   星期中的天数
    a   Am/pm 标记
    H   一天中的小时数(0-23)
    k   一天中的小时数(1-24)
    K   am/pm 中的小时数(0-11)
    h   am/pm 中的小时数(1-12)
    m   小时中的分钟数
    s   分钟中的秒数  
    S   毫秒数
    z   时区  
    Z   时区
*/

方法

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

clone() 
//创建此 SimpleDateFormat 的一个副本
//返回Object类型

Calendar类

API上对Calendar类的解释

Calendar类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方法calendar fields如YEAR , MONTH , DAY_OF_MONTH , HOUR ,等等,以及用于操纵该日历字段,如获取的日期下个星期。

方法

抽象类不能实例化 通过以下方法获得Calendar对象

getInstance() 
//使用默认时区和区域设置获取日历

getInstance(Locale aLocale) 
//使用默认时区和指定的区域设置获取日历 

getInstance(TimeZone zone) 
//使用指定的时区和默认语言环境获取日历

getInstance(TimeZone zone, Locale aLocale) 
//获取具有指定时区和区域设置的日历
主要方法

get(int field) 
//返回给定日历字段的值
//返回int类型
set(int field, int value) 
//将给定的日历字段设置为给定值

getTime() 
//返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象
//返回Date类型
setTime(Date date) 
//使用给定的 Date 设置此 Calendar 的时间

clone() 
//创建并返回此对象的一个副本
//返回Object类型

日历字段
/*
    DATE            一个月中的某天
    HOUR            上午或下午的小时
    HOUR_OF_DAY     一天中的小时
    MINUTE          一小时中的分钟
    SECOND          一分钟中的秒
    MONTH           月
    YEAR            年
*/

实例

Date

public static void main(String[] args)
{
    //实例化Date
    Date date = new Date();
    //打印当前时间
    System.out.println(date);
    //返回1970.1.1到当前时间毫秒数
    System.out.println(date.getTime());
    //设置Date对象为1970.1.1到指定毫秒数的时间
    date.setTime(99999);
}

DateFormat

public static void main(String[] args)
{   
    //实例化Date
    Date date = new Date();
    //实例化DateFormat
    DateFormat DF = DateFormat.getDateInstance();
    //格式化输出Date对象
    System.out.println(DF.format(date));
    //字符串转换为Date对象
    try
    {
        Date d = DF.parse("2018年8月11日");
    } catch (ParseException e)
    {
        e.printStackTrace();
    }
}

SimpleDateFormat

public static void main(String[] args)
{
    //实例化Date
    Date date = new Date();
    //实例化SimpleDateFormat 指定格式 四位年份 两位月份 两位日期
    DateFormat SDF = new  SimpleDateFormat("yyyy-MM-dd");
    //格式化输出Date对象
    System.out.println(SDF.format(date));
    //字符串转换为Date对象
    try
    {
        Date d = SDF.parse("2018-08-11");
    } catch (ParseException e)
    {
        e.printStackTrace();
    }
}

Calendar

public static void main(String[] args)
{
    //实例化Date
    Date date = new Date();
    //实例化Calendar
    Calendar c = Calendar.getInstance();
    //Calendar封装了所有时间/日期相关数据
    //设置当前对象年份
    c.set(Calendar.YEAR, 2019);
    //设置当前对象月份
    c.set(Calendar.MONTH, 8);
    //获取年份并输出
    System.out.println(c.get(Calendar.YEAR));
    //获取月份并输出
    System.out.println(c.get(Calendar.MONTH));
}

猜你喜欢

转载自blog.csdn.net/weixin_42921496/article/details/81561931
今日推荐