似乎每种编程语言都脱离不了日期操作函数,java也一样,之前零零散散接触过多次,还是写一篇博客记下来吧:
第一种是Date类,来看看怎么用
package excise;
import java.util.Date;
public class DateDemo {
public static void main(String args[]){
Date date=new Date();
System.out.println(date);
}
}
结果为:
Thu Nov 05 14:07:26 CST 2015
该类结果时间格式,并不是我们所希望的,而且日期不能精确到毫秒的级别,不太符合我们的语言习惯,
看另外一个类,Calendar类,该类时间能精确到毫秒,而且该类下面的时间相关的都是常量,该类本身是一个抽象类,可以通过GregorianCalendar类来实例化
package excise;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class DateDemo {
public static void main(String args[]){
Calendar calendar=new GregorianCalendar();
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH));
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));
}
}
结果是:
2015
10
5
14
50
28
746
时间格式类,DateFormat类,其中DateFormat类与MessageFormat类都属于Format类的子类,专门用于格式化数据使用的,
DateFormat类也是一个抽象类,所以是无法直接用实例化的的方法,但是在此抽闲类提供了一个静态方法,可以直接用于实例化,
package excise;
import java.util.Date;
import java.util.Locale;
import java.text.DateFormat;
public class DateDemo {
public static void main(String args[]){
DateFormat df1=DateFormat.getDateInstance();
DateFormat df2=DateFormat.getDateTimeInstance();
System.out.println(df1.format(new Date()));
System.out.println(df2.format(new Date()));
DateFormat df3=DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN"));
DateFormat df4=DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN") );
System.out.println(df3.format(new Date()));
System.out.println(df4.format(new Date()));
}
}
结果是:
2015-11-5
2015-11-5 15:04:53
2015年11月5日
2015年11月5日 下午03时04分53秒 CST
还有一个时间格式类,SimpleDateFormat类,这是另外一个时间格式类,具体来看看怎么用:
package excise;
import java.util.Date;
import java.util.Locale;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class DateDemo {
public static void main(String args[])throws Exception{
String strDate="2015-11-05 10:11:30.345";
String pat1="yyyy-MM-dd HH:mm:ss.SSS";
String pat2="yyyy年MM月dd日HH时mm分ss秒SSS毫秒";
SimpleDateFormat df1=new SimpleDateFormat(pat1);
SimpleDateFormat df2=new SimpleDateFormat(pat2);
Date d=df1.parse(strDate);
System.out.println(df1.format(d));
System.out.println(df2.format(d));
System.out.println(df1.format(new Date()));
System.out.println(df2.format(new Date()));
}
}