当我在日历中增加天数时,我遇到了一个奇怪的问题。我想一年中的每一天都重复一遍。这是我的密码
Date d = null;
SimpleDateFormat textFormat = new SimpleDateFormat("dd-MM-yyyy");
String paramDateAsString = "10-1-2012";
d = textFormat.parse(paramDateAsString);
Calendar cal = Calendar.getInstance();
cal.setTime(d);
for(int i = 0; i < 365; i++) {
cal.add(Calendar.DAY_OF_YEAR, 1);
System.out.println(cal.get(Calendar.YEAR)+"-"+cal.get(Calendar.MONTH)+1+"- "+cal.get(Calendar.DAY_OF_MONTH)+" 00:00:00'");
}我得到了这个输出:
..。 2012-01-29 00:00:00:00 2012-01-30 :00:00:00 2012-01-31 00: 00:00:00‘ 2012-11-1 : 00:00:00‘ 2012-11-2 : 00:00:00‘ ..。
发布于 2013-11-12 09:02:32
这就是问题所在:
"-"+cal.get(Calendar.MONTH)+1这实际上是在执行字符串连接--它实际上是
("-" + cal.get(Calendar.MONTH)) + 1因此,当cal.get(Calendar.MONTH)返回1时,实际上是:
("-" + 1) + 1 // which is...
"-1" + 1 // which is...
"-11"您可以将添加的内容括起来:
"-" + (cal.get(Calendar.MONTH) + 1)..。但是最好使用SimpleDateFormat来执行格式化,而不是手动执行。
https://stackoverflow.com/questions/19924837
复制相似问题