java 日期运算

java.util.Date下的很多(构造)方法,已经被标识为"过时"方法,官方推荐使用Calendar类来处理日期的运算,下面是示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import  java.text.SimpleDateFormat;
import  java.util.Calendar;
import  java.util.Date;
  
public  class  HelloWorld {
     
     public  static  void  main(String[] args) {
         
         //指定时间输出格式
         SimpleDateFormat sdf= new  SimpleDateFormat( "yyyy-MM-dd hh:mm:ss" );
        
         Date dt =  new  Date();
         System.out.println( "当前时间:"  + sdf.format(dt));
         
         Calendar rightNow = Calendar.getInstance();
         rightNow.setTime(dt);       
         
         rightNow.add(Calendar.YEAR,- 1 ); //当时日期减1年
         System.out.println( "减1年:"  + sdf.format(rightNow.getTime()));
         
         rightNow.add(Calendar.MONTH, 3 ); //(在刚才的结果上)再加3个月
         System.out.println( "再加3个月:"  + sdf.format(rightNow.getTime()));
         
         rightNow.add(Calendar.DAY_OF_YEAR, 10 ); //(在刚才的结果上)再加10天       
         System.out.println( "再加10天:"  + sdf.format(rightNow.getTime()));
         
 
     }
}

  输出结果:

当前时间:2013-02-21 09:40:49
减1年:2012-02-21 09:40:49
再加3个月:2012-05-21 09:40:49
再加10天:2012-05-31 09:40:49

----------------------------------------------

如果要将某个日期中的 各部分(比如:年、月、日、星期...) 拆解出来,也很容易:

复制代码
 1         Date dt = new Date();        
 2         Calendar calendar = Calendar.getInstance();
 3         calendar.setTime(dt);     
 4            System.out.println("当前日期:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dt));//当前日期:2013-02-28 16:22:37
 5         System.out.println("年:" + calendar.get(Calendar.YEAR));//年:2013
 6         System.out.println("月:" + (calendar.get(Calendar.MONTH)+1));//月:2 -注:月份是从0开始的
 7         System.out.println("日:" + calendar.get(Calendar.DATE));//日:28
 8         System.out.println("时(12小时制):" + calendar.get(Calendar.HOUR));//时:4(12小时制)
 9         System.out.println("时(24小时制):" + calendar.get(Calendar.HOUR_OF_DAY));//时:16(24小时制)
10         System.out.println("分:" + calendar.get(Calendar.MINUTE));//分:30
11         System.out.println("秒:" + calendar.get(Calendar.SECOND));//秒:19
12         System.out.println("本月第" + calendar.get(Calendar.WEEK_OF_MONTH) + "周");//本月第5周
13         System.out.println("本年第" + calendar.get(Calendar.WEEK_OF_YEAR) + "周");//本年第9周    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值