Java中關於時間的操作主要是:
1、擷取目前時間,和某個時間進行比較。此時主要拿long型的時間值。
方法如下:
要使用 java.util.Date 。擷取目前時間的代碼如下
Date date = new Date();
date.getTime() ;
還有一種方式,使用 System.currentTimeMillis() ;
都是得到一個當前的時間的long型的時間的毫秒值,這個值實際上是目前時間值與1970年一月一號零時零分零秒相差的毫秒數
2、擷取某種格式的日期。
方法:
擷取時間的格式,需要用到一個專門用於時間格式的類 java.text.SimpleDateFormat 。
首先,定義一個 SimpleDateFormat 變數
SimpleDateFormat sdf = new SimpleDateFormat("",Locale.SIMPLIFIED_CHINESE);
這個建構函式的定義如下:
SimpleDateFormat(String pattern, Locale locale)
第一個參數 pattern ,我們後面再解釋,這裡我們使用一個 "", 第二個參數,是用來設定時區的,這裡用到了 java.util.Locale 這個類,這個類了面定義了很多靜態變數,直接拿過來用就 OK ,我們把時區設定為 Locale.SIMPLIFIED_CHINESE ,只看名字,這個靜態變數的意義已經很清楚了。
接下來我們使用這個 SimpleDateFormat 把目前時間格式化為一個如下格式的時間字串“ XXXX 年 XX 月 XX 日 _XX 時 XX 分 XX 秒”,代碼:
sdf.applyPattern("yyyy年MM月dd日_HH時mm分ss秒");
String timeStr = sdf.format(new Date());
擷取時間格式的函數是 format ,這個函數的參數是 java.util.Date 對象,這個沒有什麼花頭。
要說明一下的是這個 pattern ,所謂的模式。這裡, yyyy,MM,dd 等,這就是模式。
我們可以在 SimpleDateFormat 的建構函式中指定模式,比如
SimpleDateFormat sdf = new SimpleDateFormat(" yyyy-MM-dd ",Locale.SIMPLIFIED_CHINESE);
也可以擷取時間格式的時候使用applyPattern函數臨時指定,上面的例子就是這樣。
什麼字元代表什麼,這是 j2se 約定好的,設定模式的時候,我們可以使用約定好的字元加上任何我們想要的字串。
j2se 對字元所代表的模式的約定列表如下:
| Letter |
Date or Time Component |
Presentation |
| G |
Era designator |
Text |
| y |
Year |
Year |
| M |
Month in year |
Month |
| w |
Week in year |
Number |
| W |
Week in month |
Number |
| D |
Day in year |
Number |
| d |
Day in month |
Number |
| F |
Day of week in month |
Number |
| E |
Day in week |
Text |
| a |
Am/pm marker |
Text |
| H |
Hour in day (0-23) |
Number |
| k |
Hour in day (1-24) |
Number |
| K |
Hour in am/pm (0-11) |
Number |
| h |
Hour in am/pm (1-12) |
Number |
| m |
Minute in hour |
Number |
| s |
Second in minute |
Number |
| S |
Millisecond |
Number |
| z |
Time zone |
General time zone |
| Z |
Time zone |
RFC 822 time zone |