如何在Scala或Java中将纪元时间增加5分钟

时间:2014-08-06 07:39:20

标签: java scala datetime

val df = new SimpleDateFormat("MMM dd yyyy HH:mm:ss.SSS zzz")

var date1 = new Date()

println(date1.getTime)

结果: 1407309964324

如何将它增加5分钟?

5 个答案:

答案 0 :(得分:5)

您可以使用日历类的add方法在日历常量中添加指定日期,分钟,小时等的时间。

<强>样品:

    Date date1 = new Date();
    Calendar c = Calendar.getInstance();
    c.setTime(date1);
    c.add(Calendar.MINUTE, 5); //adds five minute to the calendar's date
    System.out.println(date1.getTime()); //current time
    System.out.println(c.getTime().getTime()); //current time + 5 minutes

答案 1 :(得分:4)

好吧,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);

答案 2 :(得分:3)

我要注意DateCalendar通常被认为设计得非常糟糕。 Java 8有一个新的日期/时间库(对于以前的Java版本,使用{8},Java 8库所基于的,或Joda Time),使用它来编写:

import java.time.OffsetDateTime;

...
OffsetDateTime dt = OffsetDateTime.now();
OffsetDateTime dt1 = dt.plusMinutes(5);

答案 3 :(得分:1)

在java中,您可以使用Calendar来执行此操作:

Date date1 = new Date();
Calendar c= new GregorianCalendar();
c.setTime(date1);
c.add(Calendar.MINUTE, 5);
date1 = c.getTime();

答案 4 :(得分:1)

使用Java8,您可以使用以下scala代码将5分钟增加到提供的Date值:

// 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