val df = new SimpleDateFormat("MMM dd yyyy HH:mm:ss.SSS zzz")
var date1 = new Date()
println(date1.getTime)
Результат: 1407309964324
как я могу увеличить его на 5 минут?
Вы можете использовать календарь класса add
метод для добавления указать время дня от секунд, минут, часов и т.д. в постоянная календаре.
образец:
Date date1 = new Date();
Calendar c = Calendar.getInstance();
c.setTime(date1);
c.add(Calendar.MINUTE, 5); //adds five minute to the calendar date
System.out.println(date1.getTime()); //current time
System.out.println(c.getTime().getTime()); //current time + 5 minutes
Ну, 5 минут всегда 300 000 миллисекунд, так что:
long millis = date1.getTime();
millis += 300000;
Date date2 = new Date(millis);
Или, возможно, более читаемо:
long millis = date1.getTime();
millis += TimeUnit.MINUTES.toMilliseconds(5);
Date date2 = new Date(millis);
Я просто хочу отметить, что Date
и Calendar
обычно считаются очень плохо спроектированными. Java 8 имеет новую библиотеку даты и времени (для предыдущих версий Java используйте Joda Time, на которой была основана библиотека Java 8, или http://www.threeten.org/), используя написанную вами:
import java.time.OffsetDateTime;
...
OffsetDateTime dt = OffsetDateTime.now();
OffsetDateTime dt1 = dt.plusMinutes(5);
Используя Java8, вы можете увеличивать 5 минут до заданного значения Date
с помощью следующего кода scala:
// because the supplied Date in your question uses this Date structure:
import java.util.Date
import java.time.Instant
import java.time.LocalDateTime
import java.time.ZoneId
// supplied date from your question
val date1 = new Date()
// convert to LocalDateTime
val ldt = LocalDateTime.ofInstant(Instant.ofEpochMilli(date1.getTime), ZoneId.systemDefault)
// add five minutes
val incrementedBy5 = ldt.plusMinutes(5)
// convert to Long
val asLongInt: Long = incrementedBy5.atZone(ZoneId.systemDefault()).toEpochSecond
или в одной строке:
LocalDateTime.ofInstant(Instant.ofEpochMilli(date1.getTime), ZoneId.systemDefault).plusMinutes(5).atZone(ZoneId.systemDefault()).toEpochSecond
В java вы можете использовать Calendar
для этого:
Date date1 = new Date();
Calendar c= new GregorianCalendar();
c.setTime(date1);
c.add(Calendar.MINUTE, 5);
date1 = c.getTime();