日期与时间
1、java中的时间:
Java中采用标准类库中的Date类型时间,使用距离一个固定时间点的
毫秒数的时间点来表示时间
2、固定时间点即纪元(UTC),也就是1970年1月1日0时0分0秒
之前使用过的System.currentTimeMillis()也是这样,返回距离纪元的毫秒数
3、UTC与GMT都是世界通用的时间格式
(javase:标准版本的jdk,即类库为基本类型
javaee:企业版本的jdk,基本类库满足不了企业开发的需求,
因此此jdk中含有其他与企业开发相关的类库
javame:移动版本的jdk,jdk中含有与移动端开发的类型
)
二、Date类型:
java.util.Date类型,封装了日期与时间的信息,
之后里面的很多功能都弃用,渐渐的使用Calender类型来替代了
1、构造器:
Date();
创建一个封装当前系统时间的Date对象,时间为距离纪元的毫秒数
Date(long time)
创建一个距离纪元time毫秒的Date对象
2、常用方法
long getTime()
返回距离元年的毫秒数,返回值为long类型
void SetTime(long time)
修改时间对象的毫秒数
==================================================================
SimpleDateFormate:
作用:此类型可以对Date进行格式化及其字符串转成Date类型
常用构造器:
SimpleDateFormate(String format)
创建一个指定格式的SimpleDateFormate对象
常用方法:
String format(Date date)
将参数date按照构造器里的格式进行格式化字符串
Date parse(String str)
将指定字符串str转变成date类型
这里会出出现一个异常parse在将字符串转到Date类型时,可能出现错误,可能输入的格式不对,
异常属于检查性异常。
常用格式:
yy:
yyyy:年
MM:月
dd:日
HH:时(24时)
hh:时(12时)
mm:分
ss:秒
am:上下午
E:星期
=================================================================
Calendar
1、是日期类型,此类型封装了有关于日历的所有信息。主要用于计算时间分量
时间分量:日期和时间的一部分有效值
2、Calendar是一个抽象类
提供了一个方法getInstance()来获取一个通用的子类型对象
一般都是GregorianCalendar(格里高利)类型的对象
与格里高利比较一下
可以看到输出结果基本一致,毫秒数差距主要因为运算产生的误差
也可以查看一下变量的类名:
结果为:
3、时间分量,常量:
static int YEAR
static int MONTH 注意:日历里的月份是0-11
static int DATE
static int DAY_OF_WEEK 注意:默认从周日到周六即1-7
static int DAY_OF_MONTH
..............
4、类型中提供了get(int filed)方法,通过指定时间分量常量来获取
相应时间分量的值
5、提供了set(int filed,int value),进行设置时间分量值
6、提供了void add(int file,int value ),用于对当前日历信息,通过
时间分量来计算增加value后的日历信息
value值如果为负数,向前推算
输出结果为:将时间设置成本月的第14天,我的系统时间为8月,也就是8月14号,在加上45天,也就是下面的结果
其他方法:
Date getTime()
将日历对象转成日期对象
void setDate(Date date)
将指定date日期转成日历对象的信息
输出结果为:为日期类型的表示方式
int getActualMaximum(int filed)
获取指定时间分量的最大值
如:指定Calendar.MONTH,获取的是11,即12月份
指定Calendar.DATE,注意,获取的是当前日历对象所在月的天数的最大值
输出结果为: