我将值传递给日历实例,但不知道为什么它没有按预期执行。我想在特定日期添加一天,然后使用该日期。
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到日历==年= 2013month = 7day = 29hh = 12mm = 0
日历中的数据cmng == year = 35month = 1day = 4hh = 0mm = 0
我通过对代码添加注释添加一天来运行该代码,但结果仍然相同,除了白天,这意味着添加一天工作完美---> 年= 35个月= 1天= 3hh = 0mm = 0
答案 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);
答案 1 :(得分:0)
使用错误的参数调用set()
方法。根据{{3}},订单必须为year
,month
,date
作为前三个参数,您可以使用date
,month
来调用它, year
作为第一个参数。
如果您将代码更改为
c.set(Integer.parseInt(fy),
Integer.parseInt(fm)-1,
Integer.parseInt(fd),
Integer.parseInt(fh),
Integer.parseInt(fmn));
它应该按预期工作。
奇怪的价值观是因为它将2013
视为大约的日期。 6年被添加到日期。