Date:主要用于--获取时间
使用util包下的类
举例:Date date=new Date(); //获取系统当前时间
//Date代码参考
//无参构造方法
Date date=new Date(); //获取系统当前时间
System.out.println(date); //输出:Wed Jul 17 21:40:27 CST 2019
//带参构造方法
long l=20000000l;
Date dateL=new Date(l); //表示:举例1970年01月01日 20000000毫秒后的时间
System.out.println(dateL); //输出:Thu Jan 01 13:33:20 CST 1970
//date的方法
long lDate=date.getTime(); //获取毫秒值(距离1970年01月01日)
date.setTime(20000000l); //设置当前时间
System.out.println(date); //输出:Thu Jan 01 13:33:20 CST 1970
//Date类 源码查看
//无参构造方法:获取系统当前时间
public Date() {
this(System.currentTimeMillis());
}
//重写的toString方法
public String toString() {
// "EEE MMM dd HH:mm:ss zzz yyyy";
BaseCalendar.Date date = normalize();
StringBuilder sb = new StringBuilder(28);
int index = date.getDayOfWeek();
if (index == BaseCalendar.SUNDAY) {
index = 8;
}
convertToAbbr(sb, wtb[index]).append(' '); // EEE
convertToAbbr(sb, wtb[date.getMonth() - 1 + 2 + 7]).append(' '); // MMM
CalendarUtils.sprintf0d(sb, date.getDayOfMonth(), 2).append(' '); // dd
CalendarUtils.sprintf0d(sb, date.getHours(), 2).append(':'); // HH
CalendarUtils.sprintf0d(sb, date.getMinutes(), 2).append(':'); // mm
CalendarUtils.sprintf0d(sb, date.getSeconds(), 2).append(' '); // ss
TimeZone zi = date.getZone();
if (zi != null) {
sb.append(zi.getDisplayName(date.isDaylightTime(), TimeZone.SHORT, Locale.US)); // zzz
} else {
sb.append("GMT");
}
sb.append(' ').append(date.getYear()); // yyyy
return sb.toString();
}
SimpleDateFormat:主要用于--设置时间展示格式
顾名思义:简单的日期格式化。(只是定义一个日期表示形式,并不是获取日期)
在text包下
SimpleDateFormat类可以按照自己的习惯输出日期的表示形式,利于阅读。例如:2019-01-02
两种方法:
format(Date date) Date转为String
parse(String str) String转为Data
//指定格式输出当前时间
Date date=new Date();
//无参构造方法
SimpleDateFormat spf=new SimpleDateFormat();
System.out.println(spf.format(date)); //输出:2019/7/17 下午10:15
//带参构造方法
SimpleDateFormat spf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(spf1.format(date)); //输出:2019-07-17 22:15:13
//字符串转为Date形式输出
//注意:字符串的日期形式 与 SimpleDateFormat中设置的形式 要一致
String str="2011-03-22";
SimpleDateFormat spf2=new SimpleDateFormat("yyyy-MM-dd");
try {
date=spf2.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date); //输出:Tue Mar 22 00:00:00 CST 2011
Calendar:主要用于--修改时间、获取日期中某个单独值(比如月份)
util包下
Calendar:日历类,是一个抽象类。以多态的形式定义对象:Calendar c=Calendar.getInstance();
注意:月份从0开始
三个方法:
get(Calendar.YEAR) 获取年/月/日等
set(年,月,日) 设置日期
add(Calendar.YEAR,-2) 时间字段的增减(年份减2)
//获取日历的某个字段举例
Calendar calendar=Calendar.getInstance();
int y=calendar.get(Calendar.YEAR); //获取 年
System.out.println(y); //输出:2019
//直接输出calendar,可以查看日历每个字段的表示单词
System.out.println(calendar);
//输出:... YEAR=2019,MONTH=6,WEEK_OF_YEAR=29,WEEK_OF_MONTH=3,DAY_OF_MONTH=17,DAY_OF_YEAR=198,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=10,HOUR_OF_DAY=22,MINUTE=29,SECOND=3 ...
//set例子
calendar.set(2018,3,12);//注意这里月份设置3,是指4月
int y1=calendar.get(Calendar.YEAR);
System.out.println(y1); //输出:2018
//add例子
calendar.add(Calendar.YEAR,-8);
int y2=calendar.get(Calendar.YEAR);
System.out.println(y2); //输出:2010