0

JSONから取得した日付文字列「2012-01-26」があります。

ListViewにデータを表示するよりも、月と年が現在の年であるかどうかを確認する必要があります。

SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-DD");
  try {
      Calendar c = Calendar.getInstance(); 
      c.setTime(dateFormat.parse(event_start_date));
      int month = c.get(Calendar.MONTH);
      System.out.println(c.get(Calendar.YEAR));
      System.out.println("month is"+month);
 }

年の値は常に正しいですが、月は常にゼロです。

4

6 に答える 6

2

カレンダーのインスタンスを使用して月を取得しています。

int month = c.get(Calendar.MONTH);

したがって、現在の月(つまり、1月)が取得されます。これは0を意味します。したがって、結果は正しいです。

これを確認してください。

月-カレンダーとの互換性のために設定された月(0〜11)。

の月が必要な場合はevent_start_date、カレンダーのインスタンスを使用する必要はまったくありません。

を使用してフェッチできます

int month = event_start_date.getMonth();
于 2013-01-08T09:24:35.367 に答える
2
于 2021-06-21T08:37:48.330 に答える
1

月は0から始まります-これはあなたが1月を取得することを意味します。Calendar.javaから:

public final static int JANUARY = 0;
于 2013-01-08T09:23:55.483 に答える
1

月はゼロベース(1月= 0)であるため、1を追加する必要があります。

于 2013-01-08T09:24:10.013 に答える
1

javaドキュメントを読む;)

1か月間、次のように表示されます。

Field number for get and set indicating the month. This is a calendar-specific value. The first month of the year is JANUARY which is 0; the last depends on the number of months in a year.
于 2013-01-08T09:28:04.200 に答える
0

これは、カレンダーの月が0(1月の場合)から始まり、11(12月の場合)まで続くためです。

于 2013-01-08T09:25:44.990 に答える