如果想要取得系統的時間,可以使用System.currentTimeMillis()方法,例如:
DateDemo.java
1?public?class?DateDemo?{
2?????public?static?void?main(String[]args)?{
3???????? System.out.println(System.currentTimeMillis());
4???? }
5}
執行結果會顯示從
1970年1月1日開始到取得系統時間為止所經過的毫秒數,例如1115346430703這個數字,但這樣的數字沒有人確切了解它的意 義是什么,您可以使用Date類別來讓這個數字變的更有意義一些,例如:
DateDemo.java
import?java.util.Date;
public?class?DateDemo?{
????public?static?void?main(String[]args)?{
????????Date?date?=?new?Date();????????????????????
??????? System.out.println(date.toString());
????????System.out.println(date.getTime());
????}
}
執行的結果如下:
? Fri May 06 10:31:13 GMT+08:00 2005
??1115346673531
當您生成Date對象時,實際上它會使用System.currentTimeMillis()來取得系統時間,而您使用
toString()方法時,會將取得的
1970年1月1日至今的毫秒數轉為
dow mon dd hh:mm:ss zzz yyyy的格式,分別是:「星期 月 日 時:分:秒 公元」;使用Date的
getTime()方法則可以取得毫秒數。
如果您想要對日期時間作格式設定,則可以使用DateFormat來作格式化,先來看看它的子類SimpleDateFormat如何使用:
DateDemo.java
???
import?java.text.DateFormat;
import?java.text.SimpleDateFormat;
import?java.util.Date;
public?class?DateDemo?{
????public?static?void?main(String[]args)?{
????????Date?date?=?new?Date();
????????DateFormat?dateFormat?=?new??SimpleDateFormat("EE-MM-dd-yyyy");
??????? System.out.println(dateFormat.format(date));
????}
}
執行結果:
??
??星期
五-05-06-2005
DateFormat會依計算機上的區域設定顯示時間格式,EE表示星期,MM表示月份、dd表示日期,而yyyy是公元,每個字符的設定都各有其意義,您
可以參考
SimpleDateFormat
的API說明了解每個字符設定的意義。
您也可以直接從DateFormat指定格式生成DateFormat的實例,例如:
DateDemo.java
???
import?java.text.DateFormat;
import?java.util.Date;
public?class?DateDemo?{
????public?static?void?main(String[]?args)?{
????????Date?date?=?new?Date();
??? ??? DateFormat?shortFormat?=??DateFormat.getDateTimeInstance(DateFormat.SHORT,
DateFormat.SHORT);
??????? DateFormat?mediumFormat?= DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);
??? ??? DateFormat?longFormat?= DateFormat.getDateTimeInstance(DateFormat.LONG,?DateFormat.LONG);
??????? DateFormat?fullFormat?= DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
??????? System.out.println(shortFormat.format(date));
????????System.out.println(mediumFormat.format(date));
????????System.out.println(longFormat.format(date));
????????System.out.println(fullFormat.format(date));
????}
}
在使用
getDateTimeInstance()取得DateFormat實例時,可以指定的參數是日期格式與時間格式,以上所指定的格式依訊息詳細度 區分,執行結果如下:
?? 2005/5/6 上午 10:45 2005/5/6 上午 10:45:25 2005年5月6日 上午10時45分25秒 2005年5月6日 星期五 上午10時45分25秒 GMT+08:00
?? |
您也可以使用getDateInstance()取得DateFormat實 例,并同時指定日期的區域顯示方式,例如:
DateDemo.java
import?java.text.DateFormat;
import?java.util.Date;
import?java.util.Locale;
public?class?DateDemo?{
????public?static?void?main(String[]?args)?{
????????Date?date?=?new?Date();
????????Locale?locale?=?new?Locale("en",?"US");
????????DateFormat?shortFormat?=? DateFormat.getDateInstance(DateFormat.SHORT,locale);
????????DateFormat?mediumFormat?=?DateFormat.getDateInstance(????????????????DateFormat.MEDIUM,locale);
????????DateFormat?longFormat?= DateFormat.getDateInstance(DateFormat.LONG,?locale);
????????DateFormat?fullFormat?= DateFormat.getDateInstance(DateFormat.FULL,?locale);
??? ??? System.out.println(shortFormat.format(date));
??? ??? System.out.println(mediumFormat.format(date));
??? ??? System.out.println(longFormat.format(date));
??? ??? System.out.println(fullFormat.format(date));
????}
}
這邊指定了美國的時間顯示方式,執行結果如下:
?
5/6/05
??May 6, 2005
??May 6, 2005
??Friday, May 6, 2005