黑马程序员技术交流社区
标题:
Date中的一个问题
[打印本页]
作者:
乔九
时间:
2013-2-24 11:50
标题:
Date中的一个问题
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);
}
}
作者:
谢波
时间:
2013-2-24 12:16
c.get((Calendar.MONTH)+1)这句话改成(c.get(Calendar.MONTH)+1)就行了
get方法应该接受Calendar的字段而不是单纯的int数字
虽然都是数字,但是作为字段它还有名称
get方法就能根据名称来做相应的操作
c.get((Calendar.MONTH)+1)这个就相当于直接传了个int数字进去
作者:
李挺
时间:
2013-2-24 12:20
我的理解啊:
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)+"月"就好了
作者:
游灿平
时间:
2013-2-24 12:36
看了一下你的代码是你的语法出问题了
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) 先取到月份再加一
可能是你大意照成的吧
/*
* 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) 先取到月份再加一
* 可能是你大意照成的吧
*/
Calendar c=Calendar.getInstance();
//获取当前月
System.out.println(c.get(Calendar.MONTH)+1);//2月
//修改后是
System.out.println((c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)));
复制代码
作者:
胥文
时间:
2013-2-24 12:42
MONTH
public static final int MONTH指示月份的 get 和 set 的字段数字。这是一个特定于日历的值。
在格里高利历和罗马儒略历中一年中的第一个月是 JANUARY,它为 0
;最后一个月取决于一年中的月份数
由于一月是用0来表示的,依此类推,为了和我们的日常习惯一样,你在后面加1就好了:int month = c.get(Calendar.MONTH)+1;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2