2

ログ (2 つの異なる日付):

START TIME BEFORE PARSE: 06/27/2012 09:00
START TIME AFTER PARSE : Thu Mar 06 09:00:00 EET 2014


START TIME BEFORE PARSE: 07/06/2012 09:00
START TIME AFTER PARSE : Thu Jun 07 09:00:00 EEST 2012

コード:

DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm");
            Date date = sdf.parse(time);
            System.out.println("TIME BEFORE PARSE: " + time);
            System.out.println("TIME AFTER PARSE : " + date);

なぜ年を台無しにするのですか?それを機能させる方法は?

4

5 に答える 5

6

日付で月を反転したため:

              dd/MM/yyyy HH:mm
              06/27/2012 09:00

1 年に 27 番目の月はありません。

于 2012-07-10T07:00:07.840 に答える
2

最初の例の月は、27私が知っているどのカレンダーでも有効ではありません。(入力または選択した形式で、日/月の順序が間違っている可能性があります。)

于 2012-07-10T07:00:16.437 に答える
2

2012 年 6 月 27 日の日付を解析するには、パターン dd/MM/yyyy を使用します。27が月だとは思えません。適切な形式は MM/dd/yyyy です。

DateFormat はデフォルトで緩いので、27 が有効な月 (2 年 + 3 か月) と見なされるため、2 年後の 3 月になります。

于 2012-07-10T07:01:26.890 に答える
1
    String time = "06/27/2012 09:00";
    DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm");
    Date date = sdf.parse(time);
    System.out.println("TIME BEFORE PARSE: " + time);
    System.out.println("TIME AFTER PARSE : " + date);

あなたの例では、日付形式が間違っています。「dd/MM/yyyy HH:mm」を指定しましたが、これは「MM/dd/yyyy HH:mm」である必要があります

于 2012-07-10T07:07:16.690 に答える
0

パターン dd/MM/YYYYを使用しましたが、日付を MM/dd/YYYY として入力したため、この奇妙な動作が発生しました..

于 2012-07-10T07:08:48.297 に答える