使用
public static void main(String[] attr) {
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String time1 = dateFormat.format(new Date());
System.out.println("当前时间1:" + time1);
long time2 = dateFormat.parse(time1).getTime();
System.out.println("当前时间2:"+time2);
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
String time3 = dateFormat1.format(new Date());
System.out.println("当前时间3:"+time3);
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
Date time4 = calendar.getTime();
System.out.println("当前时间4:"+time4);
//加一年
calendar.add(Calendar.YEAR,1);
//减一月
calendar.add(Calendar.MONTH,-1);
Date time5 = calendar.getTime();
System.out.println("当前时间5:"+time5);
String time6 = dateFormat.format(calendar.getTime());
System.out.println("当前时间6:"+time6);
} catch (ParseException e) {
e.printStackTrace();
}
}
输出
当前时间1:2020-07-20 09:36:22.857
当前时间2:1595208982000
当前时间3:2020-07-20T09:36:22.127Z
当前时间4:Mon Jul 20 09:36:22 CST 2020
当前时间5:Sun Jun 20 09:36:22 CST 2021
当前时间6:2021-06-20 09:36:22
Calander
初始值
代码如下,值得指出的是由于我们的时区设置是GMT+8,所以打印格林威治时间得到的是1970-01-01 08:00:00.
Calendar cal = Calendar.getInstance();//得到当前时间
cal.setTimeInMillis(0);//转换成格林威治时间
获取值
cal.get(Calendar.YEAR);//年
cal.get(Calendar.MONTH) + 1;//月(必须要+1)
cal.get(Calendar.DATE);//日
cal.get(Calendar.HOUR_OF_DAY);//时
cal.get(Calendar.MINUTE);//分
cal.get(Calendar.SECOND);//秒
cal.get(Calendar.DAY_OF_WEEK);//星期(Locale.ENGLISH情况下,周日是1,剩下自己推算)
如果拿时间不是为了计算而是展示出来,肯定用SimpleDateFormart了,模式为yyyy-MM-dd HH:mm:ss
设置值
cal.set(2013, 5, 4, 13, 44, 51);//年月日时分秒(月份0代表1月)
cal.set(Calendar.YEAR, 2014);//年
cal.set(Calendar.MONTH, 7);//月(月份0代表1月)
cal.set(Calendar.DATE, 11);//日
cal.set(Calendar.HOUR_OF_DAY, 15);//时
cal.set(Calendar.MINUTE, 33);//分
cal.set(Calendar.SECOND, 32);//秒
运算值
cal.add(Calendar.YEAR, 1);//年
cal.add(Calendar.MONTH, 1);//月
cal.add(Calendar.DATE, 1);//日
cal.add(Calendar.HOUR_OF_DAY, -1);//时
cal.add(Calendar.MINUTE, 1);//分
cal.add(Calendar.SECOND, 1);//秒
cal.add(Calendar.DATE, 7);//周