Подтвердить что ты не робот

Java: как добавить 10 минут в мое время

Я получаю это время

String myTime = "14:10";

Теперь я хочу добавить как 10 минут до этого времени, так что это будет 14:20

Возможно ли это, и если да, то как?

Спасибо

4b9b3361

Ответ 1

Что-то вроде этого

 String myTime = "14:10";
 SimpleDateFormat df = new SimpleDateFormat("HH:mm");
 Date d = df.parse(myTime); 
 Calendar cal = Calendar.getInstance();
 cal.setTime(d);
 cal.add(Calendar.MINUTE, 10);
 String newTime = df.format(cal.getTime());

В качестве справедливого предупреждения могут возникнуть проблемы, если в этот 10-минутный период будет задействовано летнее время.

Ответ 2

Я бы использовал Joda Time, проанализировал время как LocalTime, а затем использовал

time = time.plusMinutes(10);

Краткая, но полная программа, чтобы продемонстрировать это:

import org.joda.time.*;
import org.joda.time.format.*;

public class Test {
    public static void main(String[] args) {
        DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm");
        LocalTime time = formatter.parseLocalTime("14:10");
        time = time.plusMinutes(10);
        System.out.println(formatter.print(time));
    }       
}

Обратите внимание, что я определенно буду использовать Joda Time вместо java.util.Date/Calendar, если возможно, - это гораздо более удобный API.

Ответ 3

Использовать метод Calendar.add(int field,int amount).

Ответ 4

Вам нужно преобразовать его в Date, где вы можете добавить несколько секунд и преобразовать его в строку.

Ответ 5

Java 7 Time API

    DateTimeFormatter df = DateTimeFormatter.ofPattern("HH:mm");

    LocalTime lt = LocalTime.parse("14:10");
    System.out.println(df.format(lt.plusMinutes(10)));

Ответ 6

Я бы рекомендовал хранить время как целые числа и регулировать его через операторы деления и по модулю, как только это будет сделано, преобразуйте целые числа в требуемый строковый формат.

Ответ 7

В приведенных выше ответах есть много простых подходов. Это еще одна идея. Вы можете преобразовать его в миллисекунду и добавить TimeZoneOffset и добавить/вычесть минуты/часы/дни и т.д. За миллисекунды.

String myTime = "14:10";
int minsToAdd = 10;
Date date = new Date();
date.setTime((((Integer.parseInt(myTime.split(":")[0]))*60 + (Integer.parseInt(myTime.split(":")[1])))+ date1.getTimezoneOffset())*60000);
System.out.println(date.getHours() + ":"+date.getMinutes());
date.setTime(date.getTime()+ minsToAdd *60000);
System.out.println(date.getHours() + ":"+date.getMinutes());

Выход:

14:10
14:20

Ответ 8

Я использовал код ниже, чтобы добавить определенный временной интервал к текущему времени.

    int interval = 30;  
    SimpleDateFormat df = new SimpleDateFormat("HH:mm");
    Calendar time = Calendar.getInstance();

    Log.i("Time ", String.valueOf(df.format(time.getTime())));

    time.add(Calendar.MINUTE, interval);

    Log.i("New Time ", String.valueOf(df.format(time.getTime())));