我必须提前一周,然后提前一个月。如果我尝试前一周工作的日子,但是如果第5天它必须改变月份不起作用,它会改变我的年份。大约一个月它改变了我的一年 tring addUrl =“”;
SimpleDateFormat sdf = new SimpleDateFormat("dd.mm.yyyy");
// surround below line with try catch block as below code throws checked
// exception
Date endDate = sdf.parse(request.getParameter(field.getId()));
Calendar cal = DateToCalendar(endDate);
cal.setTime(endDate);
SimpleDateFormat formatToSend = new SimpleDateFormat("yyy-mm-dd");
case "day":
cal.add(Calendar.DATE, -1);
addUrl = "startDate=" + formatToSend.format(cal.getTime()) + "&endDate=" + endDateString;
break;
case "week":
cal.add(Calendar.DATE, -6); // number of days to add
addUrl = "startDate=" + formatToSend.format(cal.getTime()) + "&endDate=" + endDateString;
break;
default:
cal.add(Calendar.MONTH, -1); // number of days to add
addUrl = "startDate=" + formatToSend.format(cal.getTime()) + "&endDate=" + endDateString;
}
我怎么能这样做?
由于
答案 0 :(得分:1)
在SimpleDateFormat
个对象中,您应该使用MM
几个月而不是mm
,因为mm
表示分钟,而不是几个月。< / p>
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
SimpleDateFormat formatToSend = new SimpleDateFormat("yyyy-MM-dd");
请参阅java.text.SimpleDateFormat
的API文档。
答案 1 :(得分:0)
我不确定我是否完全理解这个问题,但是一个潜在的问题是你的日期格式
m = 分钟小时
M = 月年份&lt; - 也许你想要的那个?
有关更多示例,请参阅此处。
https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html