2017-01-29 4 views
-4

JAVA |どのように日付と時刻を2つの指定された日付と時刻の間に入って5分ずつ増やすのかを調べるには?日付と時刻が2つの指定された日付と時刻の間に入って5分ずつ増えます。

例えば、出発点である場合、[29/1/2017 5時40分00秒AM]

と停止点である[29/1/2017午前6時00分00秒AM]

(ポイントの起動および停止に基づいて)のリストと、この

29/1/2017 5:40:00 AM                  
29/1/2017 5:45:00 AM  
29/1/2017 5:50:00 AM  
29/1/2017 5:55:00 AM  
29/1/2017 6:00:00 AM 

使用しないでくださいジョダのようにする必要があります。

答えて

2

新しいDateTime APIを使用してJava8のバージョンを評価します。 Java8を使用している場合は、このコードを使用する必要があります。

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("d/M/u h:m:s a"); 
LocalDateTime dateTime = LocalDateTime.parse("29/1/2017 5:40:00 AM", dateTimeFormatter); 
LocalDateTime endDateTime = LocalDateTime.parse("29/1/2017 6:00:00 AM", dateTimeFormatter); 

for(; !dateTime.isAfter(endDateTime); dateTime = dateTime.plusMinutes(5)) 
    System.out.println(dateTime.format(dateTimeFormatter)); 
+1

この新しいJava 8スタイリングは涼しく見えます! –

+0

私は同意します。それに慣れるまでに時間がかかりますが、コードを保存すると最終的には変更できません。 –

1

あなたがJODAを使用することに興味を持っていない場合は、java.util.Calendarを使用してこれを達成することができます。

:2つの java.util.Dateオブジェクトと日付を表す2つの java.util.Calendarのインスタンスを作成し、今

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a"); 

String startDateStr = "29/1/2017 5:40:00 AM"; 
String endDateStr = "29/1/2017 6:00:00 AM"; 

は、これらを解析するDateFormatを作成します。 言って、次の2つの日付を表す2つのStringオブジェクトを持っています

Date startDate = dateFormat.parse(startDateStr); 
Date endDate = dateFormat.parse(endDateStr); 

Calendar startDateCal = Calendar.getInstance(); 
startDateCal.setTime(startDate); 

Calendar endDateCal = Calendar.getInstance(); 
endDateCal.setTime(endDate); 

今のところ、次のような日付を繰り返すことができます。

for(Date d = startDateCal.getTime(); startDateCal.before(endDateCal); startDateCal.add(Calendar.MINUTE, 5)){ 
    d = startDateCal.getTime(); 
    System.out.println(dateFormat.format(d.getTime())); 
} 

私は、あなたが達成しようとしているものです。

+0

ありがとう、これは私が必要とするものです正確には –

+0

FYI、古い['Calendar'](http://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html)と[' Date'](http://docs.oracle.com/javase/8/docs/api/java/util/Date.html)クラスは現在[legacy](https://en.wikipedia.org/wiki/Legacy_system)です。 )。 [java.time](https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html)クラスによってサポートされています。 –

関連する問題