Date
是一个时间对象,包含所用时间内容
通过无参构造方法创建的时间是当前的系统时间,new Date()。
通过有参构造方法创建的时间是参数对应的时间 new Date(long mis)。
时间格式
2021-06-08 15:58:29 16:03 2021/6/8 星期几
yyyy-MM-dd HH:mm:ss HH:mm yyyy/M/d E
yyyy(YYYY):四位数的年
MM:两位月份 MMM:中文月份 一月
dd(DD):两位数的日
HH:两位24制小时 hh:两位12小时制
mm:两位分钟
ss:两位秒种
SSS:毫秒
E:星期
时间格式化对象
//创建时间对象
Date date = new Date();
System.out.println(date.toString());
//时间格式化对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String strDate = sdf.format(date);
System.out.println("格式化后:" + strDate);
输出结果:
字符串转为时间对象
String birthday = "1999-10-15";
//字符串转为时间对象
Date d = null;
try{
d = sdf.parse(birthday);
System.out.println(d);
}catch (Exception e){
e.printStackTrace();
}
输出结果:
系统时间的毫秒数
总毫秒数 ,从1970年1月1日开始计算,1970-01-01 00:00:00,又称格林威治时间。
long l1 = System.currentTimeMillis();//系统时间的毫秒数
输出结果:
详细使用请参考这为博主博客。
Calendar
格式化时间对象
Calender是一个单例的时间对象,存储的是每一个整形类型的时间单位。
//创建日历对象,获取当前系统时间
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);//年
int M = c.get(Calendar.MONTH) + 1;//月份从0记起
int d = c.get(Calendar.DAY_OF_MONTH);//日
int h = c.get(Calendar.HOUR_OF_DAY);//小时
int m = c.get(Calendar.MINUTE);//分
int s = c.get(Calendar.SECOND);//秒
int w = c.get(Calendar.DAY_OF_WEEK) - 1;//星期天是第一天
String str =
String.format("%s年%s月%s日 %s:%s:%s 星期%s",year,M,d,h,m,s,w);
System.out.println(str);
输出结果
设置时间
//设置时间
c1.set(Calendar.YEAR,1999);
c1.set(Calendar.MONTH, -1);//月份从0算起 -1则为上个月份
c1.set(Calendar.DAY_OF_MONTH,1);//1是一号 0是上个月的最后一天 -1是上个月的倒数第二天
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
System.out.println("设置的时间:" + sdf.format(c1.getTime()));
输出结果
时间的加减
//时间的加减
Calendar c2 = Calendar.getInstance();
c2.add(Calendar.MONTH,1);//正数是加上,负数是减去,0为原来
System.out.println("加减后的时间:"+sdf.format(c2.getTime()));
输出结果
总结
date得到是日期毫秒,calendar得到的是日期的字段,因为date过于古老,且不利于国际化使用,更推荐使用calendar。