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.52 或 3:30pm
MEDIUM 较长,如 Jan 12, 1952
LONG 更长,如January 12, 1952 或 3:30:32pm
FULL 完整长度,如 Tuesday、April 12、1952 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));
}