Java Android日历没有给出预期的结果
我正在将值传递给calendar实例,但不知道它为什么不能按预期执行。我想给一个特定的日期加上一天,然后使用这个日期Java Android日历没有给出预期的结果,java,android,calendar,Java,Android,Calendar,我正在将值传递给calendar实例,但不知道它为什么不能按预期执行。我想给一个特定的日期加上一天,然后使用这个日期 Log.v("data going to calendar==", "year="+Integer.parseInt(fy)+ "month="+Integer.parseInt(fm)-1)+ "day="+Integer.parseInt(fd)+ "hh="+Integer.parseInt(fh)+ "mm="+Integer.parseInt(fmn
Log.v("data going to calendar==",
"year="+Integer.parseInt(fy)+
"month="+Integer.parseInt(fm)-1)+
"day="+Integer.parseInt(fd)+
"hh="+Integer.parseInt(fh)+
"mm="+Integer.parseInt(fmn));
c.set(
Integer.parseInt(fd),
Integer.parseInt(fm)-1,
Integer.parseInt(fy),
Integer.parseInt(fh),
Integer.parseInt(fmn));
c.add(Calendar.DAY_OF_MONTH,1);
Log.v("data coming from calendar==",
"year = " + c.get(Calendar.YEAR)+
"month ="+ c.get(Calendar.MONTH)+
"day ="+c.get(Calendar.DATE)+
"hh="+c.get(Calendar.HOUR)+
"mm="+c.get(Calendar.MINUTE));
输出为:
日历数据gng==年=2013月=7日=29hh=12mm=0
日历数据cmng==年=35个月=1天=4小时=0毫米=0
我通过在代码上添加一天的注释来运行该代码,但结果除了一天之外都是一样的,这意味着添加一天是完美的--->
年=35个月=1天=3小时=0毫米=0如果要在日期中添加一天(24小时),请将其添加为毫秒:1天=24*60*60*1000毫秒
Calendar c = Calendar.getInstance();
//Set calendar's fields here
long time = c.getTimeInMilliseconds();
long nextDay = time + 24 * 60 * 60 * 1000;
c.setTimeInMillis(nextDay);
使用错误的参数调用set()
方法。根据规则,顺序必须是年
,月
,日期
,作为前三个参数,您可以使用日期
,月
,年
作为第一个参数来调用它
如果您将代码更改为
c.set(Integer.parseInt(fy),
Integer.parseInt(fm)-1,
Integer.parseInt(fd),
Integer.parseInt(fh),
Integer.parseInt(fmn));
它应该按预期工作
奇怪的值是因为它将
2013
视为大约6年的一天添加到日期上。您得到的输出是什么?你能显示日志输出吗?编辑它并显示输出后,实际上并不是添加一天导致了任何问题,在你回答之后,我通过在代码上添加注释来运行代码以添加一天,但是结果仍然相同,除了天之外,这意味着添加一天工作正常---->year=35month=1day=3hh=0mm=0