前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java学习:日期的运算

java学习:日期的运算

作者头像
菩提树下的杨过
发布2018-01-24 10:56:25
1.2K0
发布2018-01-24 10:56:25
举报
文章被收录于专栏:菩提树下的杨过

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

代码语言:javascript
复制
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

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

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

代码语言:javascript
复制
 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周    

附:各种时间format掩码格式可参考 https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-02-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档