本节目标:
1.掌握Date、Calendar类的操作
2.掌握日期格式化操作
3.掌握SimpleDateFormat进行日期格式化操作
Date类是一个常用的类,但是其操作的日期格式会有一些不符合人的要求。如果要进一步取得自己需要的时间,则可以使用Calendar类。
public class DateDemo1 { public static void main(String[] args) { Date date = new Date(); System.out.println(date); }
}
运行结果:
Mon Apr 09 17:27:29 CST 2018
public abstract class Calendar
直接已知子类:GregorianCalendar
是一个抽象类,需要使用子类对象进行实例化。使用此类可以将日期精确到毫秒。以下取得一个完整日期。
public class CalendarDemo { public static void main(String[] args) { Calendar calendar = new GregorianCalendar(); //取得年份 System.out.println("年:" + calendar.get(Calendar.YEAR)); //取得月份 System.out.println("月:" + (calendar.get(Calendar.MONTH)+1)); //取得日 System.out.println("日:" + calendar.get(Calendar.DAY_OF_MONTH)); //取得时 System.out.println("时:" + calendar.get(Calendar.HOUR_OF_DAY)); //取得分 System.out.println("分:" + calendar.get(Calendar.MINUTE)); //取得秒 System.out.println("秒:" + calendar.get(Calendar.SECOND)); //取得毫秒 System.out.println("毫秒:" +calendar.get(Calendar.MILLISECOND)); }
}
注意在取得月份的时候要加1.
此类是一个日期的格式化类,专门用来格式化日期。由于Date类已经包含了完整的日期,只需要将此日期进行格式化操作即可。
public abstract class DateFormat此类是一个抽象类,需要子类进行实例化,但是该类本身提供了实例化操作。
|-得到日期的DateFormat对象:public static DateFormat getDateInstance()
|-得到日期时间的DateFormat对象:public static DateFormat getDateTimeInstance()|-格式转换:public String format(Date date) 将一个 Date 格式化为日期/时间字符串
public class DateDemo2 { public static void main(String[] args) { DateFormat df1 = null; DateFormat df2 = null; df1 = DateFormat.getDateInstance(); df2 = DateFormat.getDateTimeInstance(); System.out.println("DATE:" + df1.format(new Date())); System.out.println("DATETIME:" + df2.format(new Date())); }
}
运行结果:
DATE:2018-4-9
DATETIME:2018-4-9 17:52:17
public class SimpleDateFormat extends DateFormat
此类是DateFormat类的子类,用来完成日期的格式化操作。可以将一种日期格式变换成另一种日期格式。如:
原始日期:2018-04-09 17:59:20
转换成:2018年04月09日 17时59分20秒
以上可以发现,转换的日期数字相同,唯一不同的是显示的格式不同。要实现转换,首先要指定一个模板。
public class DateDemo3 { public static void main(String[] args) throws ParseException { String dateStr = "2018-04-09 17:59:20"; SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); Date d = sdf1.parse(dateStr); String df = sdf2.format(d); System.out.println(df); }
}
运行结果:
2018年04月09日 17时59分20秒
总结:
一般情况下,DateFormat类很少直接使用,而是使用SimpleDateFormat完成。
