たとえば、入力パラメータは2011-01-01と2012-01-01、 で、2011-01-01〜2011-01-02、2011-01-02のようにこの期間を日々解析したいとします。 〜2011-01-03 ... 最後に、それらを文字列の配列に格納しますか?Javaで日時をString []に解析するにはどうすればよいですか?
ありがとうございます。
たとえば、入力パラメータは2011-01-01と2012-01-01、 で、2011-01-01〜2011-01-02、2011-01-02のようにこの期間を日々解析したいとします。 〜2011-01-03 ... 最後に、それらを文字列の配列に格納しますか?Javaで日時をString []に解析するにはどうすればよいですか?
ありがとうございます。
文字列から日付を解析するには、SimpleDateFormatを使用することをおすすめします。
このようにしてDateオブジェクトを取得します。 Dateオブジェクトを使用してGregorianCalendarを作成します。
次に、GregorianCalendarのadd
メソッドを使用して、終了日に達するまで一度に1日増やすことができます。ここで
はコードの例です:
String dateString1 = "2011-01-01";
String dateString2 = "2012-01-01";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
List<String> dates = new ArrayList<String>();
Date startDate = dateFormat.parse(dateString1);
Date endDate = dateFormat.parse(dateString2);
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(startDate);
while (calendar.getTime().before(endDate)) {
dates.add(dateFormat.format(calendar.getTime()));
calendar.add(Calendar.DAY_OF_MONTH, 1);
}
これはリストにあなたの日付を置きます。
実際に受諾率で作業する必要があります。しかし、基本的な方法は次のように行くだろう:
擬似コードを:
Date first = "2011-01-01";
Date last = "2012-01-01";
Calendar cal = new Calendar(first);
List<Date> dates = ...;
while (first.before(last)) {
cal.addDays(1);
dates.add(cal);
}
これはGregorianCalendar
を使用して実装するのは本当に簡単なはずです、またはあなたがこの簡単の全体の多くなるだろうjoda-timeをチェックアウトすることができます。 ..
私はあなたが何を求めているのか分かりません - 詳細を提供し、これまでのコードを表示することはできますか? – Tim