日历月和年

时间:2014-11-27 15:36:22

标签: java date calendar

我必须提前一周,然后提前一个月。如果我尝试前一周工作的日子,但是如果第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;

    }

我怎么能这样做?

由于

2 个答案:

答案 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