java calender获取时间

1、获取年月日,时间
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));    //获取东八区时间
  int year = c.get(Calendar.YEAR);    //获取年
  int month = c.get(Calendar.MONTH) + 1;   //获取月份,0表示1月份
  int day = c.get(Calendar.DAY_OF_MONTH);    //获取当前天数
  int first = c.getActualMinimum(c.DAY_OF_MONTH);    //获取本月最小天数
  int last = c.getActualMaximum(c.DAY_OF_MONTH);    //获取本月最大天数
  int time = c.get(Calendar.HOUR_OF_DAY);       //获取当前小时
  int min = c.get(Calendar.MINUTE);          //获取当前分钟
  int xx = c.get(Calendar.SECOND);          //获取当前秒
 
  SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  String curDate = s.format(c.getTime());  //当前日期
  System.out.println("当前时间:"+year + "-" + month + "-"+ day + " "+time + ":" + min +":" + xx);
  System.out.println("第一天和最后天:" + first +"," + last);
  System.out.println("当前日期curDate====:" + curDate);
 
输出结果:
当前时间:2012-9-25 22:50:54
第一天和最后天:1,30
当前日期curDate:2012-09-25 22:50:54
 
二、
Calendar的计算
  c.add(Calendar.YEAR, 1);
  c.add(Calendar.MONTH, 1);
  c.add(Calendar.DAY_OF_MONTH, 1);
  int year2 = c.get(Calendar.YEAR);
  int month2 = c.get(Calendar.MONTH) + 1;
  int day2 = c.get(Calendar.DAY_OF_MONTH);
  int firstD = c.getActualMinimum(c.DAY_OF_MONTH);
  int lastD = c.getActualMaximum(c.DAY_OF_MONTH);
  System.out.println("当前时间:"+year2 + "-" + month2 + "-"+ day2 + " "+time + ":" + min +":" + xx);
  System.out.println("第一天和最后天:" + firstD +"," + lastD);
 
输出结果:
当前时间:2013-10-26 23:4:3
第一天和最后天:1,31
三、

获取上个月的年、月、日

Calendar c=Calendar.getInstance();

c.add(Calendar.MONTH, -1);//上个月

SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String year=String.valueOf(c.get(Calendar.YEAR));

String topDay = String.valueOf(c.getActualMinimum(Calendar.DAY_OF_MONTH));

String lastDay = String.valueOf(c.getActualMaximum(Calendar.DAY_OF_MONTH)); 

//上个月

String lastMonth=String.valueOf(c.get(Calendar.MONTH)+1).length()==2?String.valueOf(c.get(Calendar.MONTH)+1):"0"+String.valueOf(c.get(Calendar.MONTH)+1);

String topDayMonth=year+"-"+lastMonth+"-"+"01" + " 00:00:00";

String lastDayMonth = year+"-"+lastMonth+"-"+lastDay+ " 23:59:59";

System.out.println("###year:" + year);

System.out.println("###last month:" + lastMonth);

        System.out.println("###topday:" + topDayMonth);

        System.out.println("###lastday:" + lastDayMonth);


 

输出结果

###year:2013

###last month:04

###topday:2013-04-01 00:00:00

###lastday:2013-04-30 23:59:59
/**
     * 获取某个日期(someDay) n 天前的日期
     * 
     * @param someDay 格式:YYYYMMDD
     * @param n
     * @return
     */
    public static String getSomeDayBeforeNDay(String someDay, int n, String format)
    {
        try
        {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            Date date = sdf.parse(someDay);
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(Calendar.DAY_OF_MONTH, -n);
            return sdf.format(cal.getTime());
        }
        catch (ParseException e)
        {
            e.printStackTrace();
            // System.out.println(e.getMessage());
        }
        
        return null;
    }
    
    /**
     * 获取某个日期(someDay) n 天后的日期
     * 
     * @param someDay 格式:YYYY-MM-DD
     * @param n
     * @return
     */
    public static String getSomeDayAfterNDay(String someDay, int n)
    {
        try
        {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Date date = sdf.parse(someDay);
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(Calendar.DAY_OF_MONTH, n);
            return sdf.format(cal.getTime());
        }
        catch (ParseException e)
        {
            e.printStackTrace();
            // System.out.println(e.getMessage());
        }
        
        return null;
    }
/**
     * 获取某个月(someMon) n 月前的月份
     * 
     * @param someMon 格式:yyyyMM
     * @param n
     * @return 格式:yyyyMM
     */
    public static String getSomeMonBeforeNMon(String someMon, int n)
    {
        try
        {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
            Date date = sdf.parse(someMon);
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(Calendar.MONTH, -n);
            return sdf.format(cal.getTime());
        }
        catch (ParseException e)
        {
            e.printStackTrace();
            // System.out.println(e.getMessage());
        }
        return "";
    }
    
    /**
     * 取某个年(someYear) n 年前的年份
     * 
     * @param someYear 格式:yyyy
     * @param n
     * @return 格式:yyyy
     * @see [类、类#方法、类#成员]
     */
    public static String getSomeYearBeforeNYear(String someYear, int n)
    {
        try
        {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
            Date date = sdf.parse(someYear);
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(Calendar.YEAR, -n);
            return sdf.format(cal.getTime());
        }
        catch (ParseException e)
        {
            e.printStackTrace();
            // System.out.println(e.getMessage());
        }
        return "";
    }

/**
     * 获得上个月第一天
     * 
     * @return
     */
    public static String getLastMonFirst()
    {
        Calendar ca = Calendar.getInstance();
        ca.set(Calendar.MONTH, Calendar.getInstance().get(Calendar.MONTH) - 1);
        ca.set(Calendar.DAY_OF_MONTH, 1);
        SimpleDateFormat s = new SimpleDateFormat("yyyyMMdd");
        return s.format(ca.getTime());
    }
    
    /**
     * 获得上个月最后一天
     * 
     * @return
     */
    public static String getLastMonLast()
    {
        Calendar ca = Calendar.getInstance();
        ca.set(Calendar.MONTH, Calendar.getInstance().get(Calendar.MONTH) - 1);
        ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
        SimpleDateFormat s = new SimpleDateFormat("yyyyMMdd");
        return s.format(ca.getTime());
    }






  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值