zoukankan      html  css  js  c++  java
  • java学习:日期的运算

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

     
    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周    

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

  • 相关阅读:
    WF 学习笔记 (1) 浅谈 WF 和 MVC 架构
    从HelloWorld看iphone程序的生命周期
    android开发我的新浪微博客户端阅读微博UI篇(6.1)
    关于微博服务端API的OAuth认证实现
    iphone开发我的新浪微博客户端开篇
    一个完整的新浪微博客户端android版OAuth认证示例
    android开发我的新浪微博客户端OAuth认证过程中用WebView代替原来的系统自带浏览器
    iphone开发我的新浪微博客户端用户登录准备篇(1.1)
    android开发我的新浪微博客户端登录页面功能篇(4.2)
    android开发我的新浪微博客户端登录页面UI篇(4.1)
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/2920006.html
Copyright © 2011-2022 走看看