Date类记录日期时间,
DateFormat类操作Date类与String的转换
Calerdan类获取Date类对象的属性
Date类
包路径:java.util.Date
日期类:可以用过此类获得时间和日期.(精确到毫秒)
Date的构造方法:
Date(); 获得当前的系统时间对象.
Date date = new Date();
Date(long time);根据指定的毫秒值,创建日期对象.
Date date = new Date(time);
*Date类对Object的toString()方法进行了重写,所以我们可以
直接输出对象,获取创建对象的时间.(结果是指定的字符串)
*因为我们是东8区,所以原本是1000毫秒初始为8点.
Date的常用的成员方法:(很多已经过时了)
long getTime():获得当前对象时间的毫秒值,(System.currentTimeMillis()获取当前系统时间的毫秒值)
System.out.println(date.getTime());
//输出 1528017398290 是从1970年1月1日0点0分0秒至今的毫秒数
//1s = 1000ms
//把毫秒转换成日期对象
Date date_new = new Date(date.getTime());
//毫米转换为天 转换为年 再 /364 就可以了
int days = date.getTime()/1000/3600/24;
DateFormat类
使用DateFormat类可以在Date对象和String对象中进行转换.
日期格式化的抽象类:
*格式化:将日期对象格式化为字符串.
*解析:将字符串格式化为日期对象.
DateFormat是一个
抽象类.所以使用
其子类来实现.
常用子类:
SimpleDateFormat
构造方法:
*SimpleDateFormat():没有指定格式.使用默认的日期格式
*SimpleDateFormat(String patten):patten指定的日期格式.(模式)
常用的规则模式:
字符 |
代表
|
备注
|
yyyy
|
年
|
有多少个字符表示获取多少位.
|
MM
|
月
|
|
dd
|
日
|
|
HH
|
时
|
hh:12小时制 HH:24小时制
|
mm
|
分
|
|
ss
|
秒
|
|
成员方法:
1.String format(Date d):是父类DateFormat的方法,将日期对象转换为字符串.
//获取当前日期对象.
Date date = new Date();
//创建日期格式化对象
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
//Date => String
String dstr = sdf.format(d);
//输出 xxx-xx-xx xx:xx:xx
System.out.print(dstr);
2.public Date parse(String str):将字符串转换为日期对象.
//日期字符串
String dateStr = "2015-04-21 10:32:33";
//创建日期格式化对象,需要指定与字符串相符的日期模式,否则解析不了
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//String => Date
//此方法需要抛出一个异常...
try{
Date date = sdf.parse(dateStr);
}catch(Exception e){
System.err.println("cast Error");
}
3.public void applyPattern(String pattern);修改日期模式.
//获取当前时间
Date date = new Date();
//创建一个SimpleDateFormat对象,使用DateFormat父类的方法
SimpleDateFormat format = new SimpleDateFormat();
//转换为字符串
String str = format.format(date);
//默认输出格式
// xxxx/xx/xx 上午/下午 xx:xx
System.out.println(str);
Calendar类
日历类,在Date后出现,
替换了许多Date的方法,也是个
抽象类
日历类可以方便获取各个时间属性.
获得日历对象:
通过调用Calender类的静态方法获得对象:(不使用new创建对象)
*
static Calender getInstance()
Calender c = Calender.getInstance();
System.out.println(c);
Calender类的成员方法:
1.int get(int field):通过field指定的字段获得日期的年月日等.
(通常使用Calender的常量作为参数.查看api)
//获得日历对象
Calender c = Calender.getInstance();
//获得日期.
int year = c.get(Calender.YEAR);
int month = c.get(Calender.MONTH) + 1;
int dayOfMonth = c.get(Calender.MONTH) + 1;
3.public void set(int field,int value):设置给定字段的值.
4.public int get(int field):返回给定字段的值
5.public Date getTime():返回一个表示此Calendar时间值的Date的对象.
*注意事项:
字段相当于类的属性.
在Calender里面的月份是从0开始的,所以只有0代表1月,11代表12月.
在Calender里面设置月份12的,会自动进一年,32日的同理.