主要使用java.util包中的Date、Calendar以及java.text包中的SimpleDateFormat.
Date类
//================================================= // File Name : Date_demo //------------------------------------------------------------------------------ // Author : Common import java.util.Date; //主类 //Function : Date_demo public class Date_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 Date date = new Date(); //实例化Date类对象 System.out.println("当前日期为:"+date); //输出日期 } }
Calendar类
//================================================= // File Name : Date_demo //------------------------------------------------------------------------------ // Author : Common import java.util.Calendar; import java.util.GregorianCalendar; //主类 //Function : Date_demo public class Calendar_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 Calendar calendar = null; //声明一个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)); } }
DateFormat类
对java.util.Date进行格式化操作,为了符合中国人的习惯
DateFormat类和MessageFormat类都属于Format类的子类,专门用于格式化数据使用
DateFormat类是一个抽象类,无法直接实例化,但是在此抽象类中提供了一个静态方法,可以直接取得本类的实例。
//================================================= // File Name : DateFormat_demo //------------------------------------------------------------------------------ // Author : Common import java.util.Date; import java.text.DateFormat; //主类 //Function : DateFormat_demo public class DateFormat_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 DateFormat df1 = null; //声明DateFormat类对象 DateFormat df2 = null; //声明DateFormat类对象 df1 = DateFormat.getDateInstance(); //取得日期 df2 = DateFormat.getDateTimeInstance(); //取得日期时间 System.out.println("DATE:"+df1.format(new Date())); //格式化日期 System.out.println("DATETIME:"+df2.format(new Date())); } }
指定显示的风格
//================================================= // File Name : DateFormat_demo //------------------------------------------------------------------------------ // Author : Common import java.util.Date; import java.util.Locale; import java.text.DateFormat; //主类 //Function : DateFormat_demo public class DateFormat_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 DateFormat df1 = null; //声明DateFormat类对象 DateFormat df2 = null; //声明DateFormat类对象 //取得日期时间,设置日期的显示格式、时间的显示格式 df1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN")); df2 = DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN")); System.out.println("DATE:"+df1.format(new Date())); //格式化日期 System.out.println("DATETIME:"+df2.format(new Date())); } }
格式化日期操作
首先使用第1个模板将字符串中表示的日期数字取出,然后再使用第2个模板将这些日期数字重新转化为新的格式表示。
//================================================= // File Name : DateFormat_demo //------------------------------------------------------------------------------ // Author : Common import java.util.Date; import java.text.ParseException; import java.text.SimpleDateFormat; //主类 //Function : DateFormat_demo public class DateFormat_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 // DateFormat df1 = null; //声明DateFormat类对象 // DateFormat df2 = null; //声明DateFormat类对象 //// df1 = DateFormat.getDateInstance(); //取得日期 //// df2 = DateFormat.getDateTimeInstance(); //取得日期时间 // // //取得日期时间,设置日期的显示格式、时间的显示格式 // df1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN")); // df2 = DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN")); // System.out.println("DATE:"+df1.format(new Date())); //格式化日期 // System.out.println("DATETIME:"+df2.format(new Date())); String strDate = "2016-3-11 10:20:30.123"; //定义日期时间的字符串 String pat1 = "yyyy-MM-dd HH:mm:ss.SSS"; //准备第1个模板,从字符串中提取数字 String pat2 = "yyyy年MM月dd日HH时mm分ss秒SSS毫秒"; //准备第1个模板,从字符串中提取数字 SimpleDateFormat sdf1 = new SimpleDateFormat(pat1); //实例化模板对象 SimpleDateFormat sdf2 = new SimpleDateFormat(pat2); //实例化模板对象 Date d = null; try{ d = sdf1.parse(strDate); //将给定字符串中的日期提取出来 }catch(ParseException e){ //如果提供的字符串格式有错误,则进行异常处理 e.printStackTrace(); } System.out.println(sdf2.format(d)); //将日期变成新的格式 } }
实现:基于Calendar类
//================================================= // File Name : CalendarClass_demo //------------------------------------------------------------------------------ // Author : Common import java.sql.Date; import java.util.Calendar; import java.util.GregorianCalendar; //类名:DateTime //属性: //方法: class DateTime { private Calendar calendar = null; //定义一个Calendar对象,可以取得时间 public DateTime() { super(); this.calendar = new GregorianCalendar(); //通过Calendar类的子类实例化 } public String getDate(){ //得到完整的日期,格式为:yyyy-MM-dd HH:mm:ss.SSS //考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能 StringBuffer buf = new StringBuffer(); //依次取得时间 buf.append(calendar.get(Calendar.YEAR)).append("-"); buf.append(this.addZero(calendar.get(Calendar.MONTH)+1, 2)); buf.append("-"); buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH), 2)); buf.append(" "); buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2)); buf.append(":"); buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2)); buf.append(":"); buf.append(this.addZero(calendar.get(Calendar.SECOND), 2)); buf.append("."); buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3)); return buf.toString(); } public String getDateComplete(){ //得到完整的日期,格式为:yyyy年MM月dd日HH时mm分ss秒SSS毫秒 //考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能 StringBuffer buf = new StringBuffer(); //依次取得时间 buf.append(calendar.get(Calendar.YEAR)).append("年"); buf.append(this.addZero(calendar.get(Calendar.MONTH)+1, 2)); buf.append("月"); buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH), 2)); buf.append("日"); buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2)); buf.append("时"); buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2)); buf.append("分"); buf.append(this.addZero(calendar.get(Calendar.SECOND), 2)); buf.append("秒"); buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3)); buf.append("毫秒"); return buf.toString(); } //考虑到日期中有前导0,所以在此处加上了补零的方法 private String addZero(int num,int len){ StringBuffer s = new StringBuffer(); s.append(num); while(s.length()<len){ //如果长度不足,则继续补零 s.insert(0,"0"); //在第1个位置处补零 } return s.toString(); } public String getTimeStamp(){ //得到时间戳:yyyyMMddHHmmssSSS StringBuffer buf = new StringBuffer(); buf.append(calendar.get(Calendar.YEAR)); buf.append(this.addZero(calendar.get(Calendar.MONTH)+1, 2)); buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH), 2)); buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2)); buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2)); buf.append(this.addZero(calendar.get(Calendar.SECOND), 2)); buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3)); return buf.toString(); } } //主类 //Function : CalendarClass_demo public class CalendarClass_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 DateTime dt = new DateTime(); //实例化DateTime对象 System.out.println("系统时间:"+dt.getDate()); System.out.println("中文时间:"+dt.getDateComplete()); System.out.println("系统时间:"+dt.getTimeStamp()); } }
实现:基于SimpleDateFormat类
//================================================= // File Name : SimpleDateFormat_demo //------------------------------------------------------------------------------ // Author : Common import java.util.Date; import java.text.SimpleDateFormat; //类名:DateTime //属性: //方法: class DateTime_1 { private SimpleDateFormat sdf = null; //声明日期格式化操作对象,直接对new Date()进行实例化 //得到日期,格式为:yyyy-MM-dd HH:mm:ss.SSS public String getDate(){ this.sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); return this.sdf.format(new Date()); } //得到完整的日期,格式为:yyyy年MM月dd日HH时mm分ss秒SSS毫秒 public String getDateComplete(){ this.sdf = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒SSS毫秒"); return this.sdf.format(new Date()); } //得到时间戳,格式为:yyyyMMddHHmmssSSS public String getDateStamp(){ this.sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); return this.sdf.format(new Date()); } } //主类 //Function : SimpleDateFormat_demo public class SimpleDateFormat_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 DateTime dt = new DateTime(); //实例化DateTime对象 System.out.println("系统时间:"+dt.getDate()); System.out.println("中文时间:"+dt.getDateComplete()); System.out.println("系统时间:"+dt.getTimeStamp()); } }