今天处理一个Java日期时间运算问题:
尝试过几种方法,觉得还是如下方法处理比较灵活,代码如下:
1package org.mmc.date.cal;
2
3import java.util.Date;
4import java.util.Calendar;
5import java.util.GregorianCalendar;
6import java.text.SimpleDateFormat;
7public 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 阅读(1502)
评论(0) 编辑 收藏