今天處理一個Java日期時間運算問題:
嘗試過幾種方法,覺得還是如下方法處理比較靈活,代碼如下:
1
package org.mmc.date.cal;
2
3
import java.util.Date;
4
import java.util.Calendar;
5
import java.util.GregorianCalendar;
6
import java.text.SimpleDateFormat;
7
public class DateCal
{
8
Date date = new Date();
9
GregorianCalendar gc = new GregorianCalendar();
10
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");
11
/** *//**
12
*
13
* gc.add(1,1)年份加1
14
* gc.add(2,1)月份加1
15
* gc.add(3,1)周加1
16
* gc.add(5,1)天加1
17
* 如果為-1表示是減
18
*/
19
public String getDateCal(int d,int beforeMonth)
20
{
21
gc.setTime(date);
22
gc.add(d,beforeMonth);
23
gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE));
24
return sf.format(gc.getTime());
25
}
26
public String getCurrentDate()
27
{
28
return sf.format(date);
29
}
30
public static void main(String[] args)
31
{
32
DateCal ud= new DateCal();
33
System.out.println("當前時間 :"+ud.getCurrentDate());
34
System.out.println("前一年 :"+ud.getDateCal(1, -1));
35
System.out.println("前一個月 :"+ud.getDateCal(2,-1));
36
System.out.println("前一個星期:"+ud.getDateCal(3, -1));
37
System.out.println("前一天 :"+ud.getDateCal(5, -1));
38
}
39
40
}
41
42
輸出結果:
當前時間 :2009-03-19 21:03:48
前一年 :2008-03-19 21:03:48
前一個月 :2009-02-19 21:02:48
前一個星期:2009-03-12 21:03:48
前一天 :2009-03-18 21:03:48
分析:
深入GregorianCalendar中的add方法源碼,代碼比較長想研究的自己看源代碼。
-------------------------------------------------------------------------------------------------
PS:本博客文章,如果沒有注明是有“轉”字樣,屬于本人原創。如果需要轉載,務必注明作者和文章的詳細出處地址,否則不允許轉載,多謝合作!
posted on 2009-03-19 21:56
apple0668 閱讀(1511)
評論(0) 編輯 收藏