A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 乔九 中级黑马   /  2013-2-24 11:50  /  2138 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itcast;
import java.text.*;
import java.util.*;
public class RuntimeDemo {
        public static void main(String[]args)
        {
/*                Date d=new Date();
                SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月DD日 E hh:mm:ss");
                System.out.println(d);
                String time=sdf.format(d);
                System.out.println(time);
                long l=System.currentTimeMillis();
                Date dl=new Date(l);
                System.out.println(dl);*/
/*                Date d=new Date();
                SimpleDateFormat sdf=new SimpleDateFormat("yyyy");
                String time=sdf.format(d);
                System.out.println(time);*/
                Calendar c=Calendar.getInstance();
                //System.out.println(c);
                sop(c.get(Calendar.YEAR)+"年"+c.get((Calendar.MONTH)+1)此处加1为九月不加为一月我的系统时间没错啊?怎么和我系统时间不一样啊+"月"+c.get(Calendar.DAY_OF_MONTH));
               
        }
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
       

}

4 个回复

倒序浏览
c.get((Calendar.MONTH)+1)这句话改成(c.get(Calendar.MONTH)+1)就行了
get方法应该接受Calendar的字段而不是单纯的int数字
虽然都是数字,但是作为字段它还有名称
get方法就能根据名称来做相应的操作
c.get((Calendar.MONTH)+1)这个就相当于直接传了个int数字进去
回复 使用道具 举报
我的理解啊:
Calendar.MONTH是个返回值是int型变量的枚举
要得到他的值需要用get方法,或者直接写这个枚举,而c.get((Calendar.MONTH)+1)方法应该不是将他的值加1,
我式了下c.get((Calendar.MONTH)+1)是9
c.get((Calendar.MONTH)+2)是5
所以我猜(Calendar.MONTH)+1应该也是一个枚举

你那个地方只要写(c.get(Calendar.MONTH)+1)+"月"就好了
回复 使用道具 举报
看了一下你的代码是你的语法出问题了
public final static int MONTH = 2; //一年中的月
public final static int WEEK_OF_YEAR = 3; //一年的的星期
通过查源码可知月份的静态常量是2,
你的表达式是:
c.get((Calendar.MONTH)+1) 相当于 c.get(2+1)变成去一年中的星期了
正确的写法是:
(c.get(Calendar.MONTH)+1) 先取到月份再加一
可能是你大意照成的吧
  1. /*
  2.                    * public final static int MONTH = 2; //一年中的月
  3.                    * public final static int WEEK_OF_YEAR = 3; //一年的的星期
  4.                    * 通过查源码可知月份的静态常量是2,
  5.                    * 你的表达式是:
  6.                    * c.get((Calendar.MONTH)+1) 相当于 c.get(2+1)变成去一年中的星期了
  7.                    * 正确的写法是:
  8.                    * (c.get(Calendar.MONTH)+1) 先取到月份再加一
  9.                    * 可能是你大意照成的吧
  10.                    */
  11.                
  12.                   Calendar c=Calendar.getInstance();
  13.                   //获取当前月
  14.                   System.out.println(c.get(Calendar.MONTH)+1);//2月
  15.                   //修改后是
  16.           System.out.println((c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)));
复制代码
回复 使用道具 举报
MONTH
public static final int MONTH指示月份的 get 和 set 的字段数字。这是一个特定于日历的值。在格里高利历和罗马儒略历中一年中的第一个月是 JANUARY,它为 0;最后一个月取决于一年中的月份数
由于一月是用0来表示的,依此类推,为了和我们的日常习惯一样,你在后面加1就好了:int month = c.get(Calendar.MONTH)+1;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马