Увеличьте время на 15 минут в Java - PullRequest
1 голос
/ 16 февраля 2020

Я могу получить время в формате 2020-02-10T11:30:00.000 как start_time и end_time как 2020-02-10T11:45:00.000 с шагом 15 минут, теперь я хочу назначить end_time в start_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("-----------------------------------------");
         }  
    }   
}

Ответы [ 2 ]

2 голосов
/ 16 февраля 2020

Вы используете ужасные унаследованные классы. Вместо этого используйте только 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 ) ;
1 голос
/ 16 февраля 2020

В Java 8+ вы можете использовать пакет java .time . Если дата и время не зависят от Часовой пояс , вы можете использовать LocalDateTime -класс:

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("-----------------------------------------");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...