获取当前日期和时间
在Java中容易得到当前的日期和时间。可以使用一个简单的Date对象的toString()方法,如下所示打印当前日期和时间:
importjava.util.Date;publicclassDateDemo{publicstaticvoidmain(Stringargs[]){// Instantiate a Date objectDatedate =newDate();// display time and date using toString()System.out.println(date.toString());}}
这将产生以下结果:
MonMay0409:51:52CDT 2009
使用SimpleDateFormat格式化日期:
SimpleDateFormat是一个具体的类,用于格式化和分析日期的语言环境敏感的方式。 SimpleDateFormat先选择任何用户定义的模式为日期时间格式。例如:
importjava.util.*;importjava.text.*;publicclassDateDemo{publicstaticvoidmain(Stringargs[]){DatedNow =newDate();SimpleDateFormatft =newSimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");System.out.println("Current Date: "+ft.format(dNow));}}
这将产生以下结果:
CurrentDate:Sun2004.07.18at 04:14:09PM PDT
import java.util.*;
import java.text.*;
public class DateDemo {
public static void main(String args[]) {
Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
System.out.println("当前时间为: " + ft.format(dNow));
}
}
用printf格式化日期:
日期和时间格式用printf方法可以非常轻松地做到。您可以使用两个字母的格式,从t和在下面给出的表格中的其中一个字母结束。例如:
importjava.util.Date;publicclassDateDemo{publicstaticvoidmain(Stringargs[]){// Instantiate a Date objectDatedate =newDate();// display time and date using toString()Stringstr =String.format("Current Date/Time : %tc",date );System.out.printf(str);}}
这将产生以下结果:
CurrentDate/Time:SatDec1516:37:57MST 2012
解析字符串到日期:
SimpleDateFormat类有一些额外的方法,如parse(),它试图根据存储在给定SimpleDateFormat 的对象的格式来分析字符串。例如:
importjava.util.*;importjava.text.*;publicclassDateDemo{publicstaticvoidmain(Stringargs[]){SimpleDateFormatft =newSimpleDateFormat("yyyy-MM-dd");Stringinput =args.length ==0?"1818-11-11":args[0];System.out.print(input +" Parses as ");Datet;try{t =ft.parse(input);System.out.println(t);}catch(ParseExceptione){System.out.println("Unparseable using "+ft);}}}
上述程序的运行示例将产生以下结果:
$ java DateDemo1818-11-11ParsesasWedNov1100:00:00GMT 1818$ java DateDemo2007-12-012007-12-01ParsesasSatDec0100:00:00GMT 2007
//根据日期取得星期几
public static String getWeek(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
String week = sdf.format(date);
return week;
}
// 取得两个日期之间的相差多少天
public static long getDaysBetween(Date date0, Date date1) {
long daysBetween = (date0.getTime() - date1.getTime() + 1000000) / 86400000;// 86400000=3600*24*1000 用立即数,减少乘法计算的开销
return daysBetween;
}