我可以获得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("-----------------------------------------");
}