SimpleDateFormat 的 format()方法,可以把日期转换为指定样式的字符串。
Date date = new Date(); SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss"); String dateStr = ft.format(date); System.out.println(dateStr);控制台输出:2017-06-07 13:48:02
SimpleDateFormat 的 parse()方法,将指定的字符串样式转换为Date类型。
Date t = null; try { // 时间字符串的样式要和SimpleDateFormat对象中定义的一样 t = ft.parse("2017-06-07 13:48:02"); } catch (ParseException e) { e.printStackTrace(); } System.out.println(t);控制台输出: Wed Jun 07 13:48:02 CST 2017
Calendar类对象字段类型
Calendar.YEAR年份Calendar.MONTH月份Calendar.DATE日期Calendar.DAY_OF_MONTH日期,和上面的字段意义完全相同Calendar.HOUR12小时制的小时Calendar.HOUR_OF_DAY24小时制的小时Calendar.MINUTE分钟Calendar.SECOND秒Calendar.DAY_OF_WEEK星期几Calendar.MONTH 是从0到11的;
所有Calendar.MONTH = 5 表示的是6月。
Calendar.DAY_OF_WEEK 获取星期, 要 -1 , 星期天是1,星期六是7
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。
Date转Calendar 或者 设置Calendar:
Calendar calendar=Calendar.getInstance(); calendar.setTime(new Date()); c1.set(2017, 5, 5);//把Calendar对象c1的年月日分别设这为:2017年6月5日calendar.add可以很好的计算日期的加减,不管加减多少天,都能很好的计算。
calendar.add(Calendar.DATE, 30);Calendar 转为Date
Date t = calendar.getTime(); System.out.println(t);计算两个日期之间的天数:
Calendar calendar = Calendar.getInstance(); Calendar calendar1 = Calendar.getInstance(); calendar.set(2017, 1,10); calendar1.set(2017, 2,20); Date d = calendar.getTime(); Date d1 = calendar1.getTime(); System.out.println((d1.getTime() - d.getTime())/(3600000*24));计算一个月有多少天/ 这个月的最后一天是几号:
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH));获取日期、月份、年份、星期几:
private static void printYMd(Calendar calendar) { System.out.println("日期 " + calendar.get(Calendar.DAY_OF_MONTH) += " 月份 " + calendar.get(Calendar.MONTH) + " 年份 " + calendar.get(Calendar.YEAR) + // 今天是星期几, 要 - 1 " 星期几 " calendar.get(Calendar.DAY_OF_WEEK)); }两个日期比较
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss"); Date t1 = null; Date t2 = null; try { t1 = ft.parse("2017-06-07 13:48:03"); t2 = ft.parse("2017-06-07 13:48:02"); } catch (ParseException e) { e.printStackTrace(); } System.out.println(t1); System.out.println(t2); System.out.println(t1.compareTo(t2));t1 在 t2 之前, 返回 -1
t1 和 t2 同时, 返回 0
t1 在 t2 之后, 返回 1