用Java将时间增加15分钟



我可以获得2020-02-10T11:30:00.000格式的时间作为start_time,end_time作为2020-02-10T11:45:00.000格式的时间,增量为15分钟,现在我想将end_time分配到start_time中,并且end_time需要增加15分钟。这就是我遇到困难的地方。

下面是我的代码,

public class DateUtil {
final static String PATTERN = "yyyy-MM-dd" +"'T'" +"HH:mm:00.000";
SimpleDateFormat simpleDateFormat = null;
DateFarmatorDemo dateFarmatorDemo = new DateFarmatorDemo();
DateFormat dateFormat = null;
static String start_date = null;
static String end_date = null;
static String temp_date = null;
public void requiredDate() {    
Calendar start_date1 = Calendar.getInstance();
start_date1.add(Calendar.DAY_OF_MONTH, -1);
Calendar end_date1 = Calendar.getInstance();
end_date1.add(Calendar.DAY_OF_MONTH, -1);
end_date1.add(Calendar.MINUTE, +15);
dateFormat = new SimpleDateFormat(PATTERN);
start_date= dateFormat.format(start_date1.getTime());
end_date= dateFormat.format(end_date1.getTime());
for(int i=0; i <=10 ; i++) {
//end_date= dateFormat.format(start_date1.getTime());
//increment by 15 mins to end_date
dateFarmatorDemo.setStart_Date(start_date);
System.out.println("Start Date ->  "+ dateFarmatorDemo.getStart_Date());
dateFarmatorDemo.setEnd_Date(end_date);
System.out.println("End Date ->  " + dateFarmatorDemo.getEnd_Date());
System.out.println("-----------------------------------------");
}  
}   
}

您使用的是糟糕的遗留类。请仅使用java.time类。

你的问题不清楚你的确切目标。但这应该会让你接近。

捕捉在特定时区中看到的当前时刻。

ZoneId z = ZoneId.of( "America/Montreal" ) ;
ZonedDateTime zdt = ZonedDateTime.now( z ) ;

再加上你的15分钟。

ZonedDateTime later = zdt.plusMinutes( 15 ) ; 

如果解析标准ISO 8601格式的输入字符串,但缺少时区或偏移量,则解析为LocalDateTime对象。

LocalDateTime ldt = LocalDateTime.parse( "2020-01-23T15:30:00" );

指定用于该输入的时区,以确定时间线上的某个时刻。

ZonedDateTime zdt = ldt.atZone( z ) ;

在Java 8+中,您可以使用Java.time包。如果日期时间不取决于时区,则可以使用LocalDateTime-class:

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS");
LocalDateTime start_date = LocalDateTime.parse("2020-02-10T11:30:00.000", dtf)
LocalDateTime end_date = LocalDateTime.of(2020,02,10,11,45,0,0);
for (int i = 0; i < 10; i++) {
start_date = start_date.plusMinutes(15);
end_date = end_date.plusMinutes(15);
System.out.println("Start Date ->  " + start_date);
System.out.println("End Date   ->  " + end_date);
System.out.println("-----------------------------------------");
}

最新更新