找到两个给定日期和时间之间的日期和时间,增加5分钟

时间:2017-01-29 04:24:22

标签: java date datetime

JAVA |如何找到两个给定日期和时间之间的日期和时间增加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

请不要使用JODA。

2 个答案:

答案 0 :(得分:2)

使用新的DateTime API继承Java8版本。如果您使用的是Java8,则应使用此代码。

df2 <- structure(list(V1 = 1:2, V2 = c("A,B,C", "X,Y,Z"), V3 = c("C,D,F", 
"V,U,")), .Names = c("V1", "V2", "V3"), class = "data.frame", 
 row.names = c(NA, -2L))

答案 1 :(得分:1)

如果您对使用JODA不感兴趣,可以使用java.util.Calendar实现此目的。 比如说,你有两个代表两个日期的String个对象:

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

创建DateFormat来解析这些:

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

现在,创建两个java.util.Date个对象和两个代表日期的java.util.Calendar个实例:

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()));
}

我知道,这就是你想要实现的目标。