0

我将html字段中的日期作为date/month/year. 如果输入是:

01/07/2013

mysql数据库中的日期为2013-08-01. 因此,月份会增加一。这是为什么 ?

以下代码段将日期从 html 字段插入数据库。

        String dateMonthYear[] = issueDate.split("/");

        System.out.println("DATE MONT YEAR-------> "+dateMonthYear[1]);
        // PRINTS THE CORRECT MONTH

        Calendar cal = Calendar.getInstance();

        cal.set(Calendar.YEAR, Integer.parseInt(dateMonthYear[2]));
        cal.set(Calendar.MONTH, Integer.parseInt(dateMonthYear[1]));
        cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dateMonthYear[0]));
        Date issueDateDB = cal.getTime();

        issued.setDateOfIssue(issueDateDB);

        // commit operation

中对应类型的类型dbDate。飞蛾增加的原因可能是什么one

4

3 回答 3

2

这是因为Calendar.MONTH它是从 0 开始的Calendar.JANUARY = 0等)。写入数据库时​​将月份部分加 1,读取时减 1。

我建议阅读this very good answer to a similar question。

于 2013-07-01T07:14:17.927 回答
1
Date d = new SimpleDateFormat("dd/MM/yyyy").parse("01/07/2013");

试试这个

于 2013-07-01T07:23:13.170 回答
0

仅仅因为日历的月份从 0 开始而不是从 1 例如:- 因为月份的 1 月值是 0 而不是 1 。所以你必须将月份减少 -1。

于 2013-07-01T07:16:16.360 回答