0

htmlフィールドから日付を として取り込みdate/month/yearます。入力が次の場合:

01/07/2013

mysqlデータベースの日付は次のようになります2013-08-01。したがって、月が 1 つ増えます。何故ですか ?

次のスニペットは、日付を html フィールドから DB に挿入します。

        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 を引きます。

同様の質問に対するこの非常に良い回答を読むことをお勧めします。

于 2013-07-01T07:14:17.927 に答える
0

カレンダーの月が 1 ではなく 0 で始まるという理由だけで:- 1 月の月の値は 1 ではなく 0 です。したがって、月を -1 減らす必要があります。

于 2013-07-01T07:16:16.360 に答える