今天处理一个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 阅读(1505)
评论(0) 编辑 收藏