32

寻找一些我正在处理的Java代码的帮助,我有以下代码可以打印出日期和时间:

  Date dNow = new Date( ); // Instantiate a Date object
  SimpleDateFormat ft = new SimpleDateFormat ("MMM d, yyyy k:mm:ss");  // Time at server

结果:2013年3月15日10:19:48

我正在创建一个 javascript 计数器来使用这个数字并从 5 分钟开始倒计时。所以我需要在 Java 中的当前日期时间上增加 5 分钟。

所以,如果当前日期时间是:Mar 15, 2013 10:19:48

我需要向 Java 添加 5 分钟以便打印出来:2013 年 3 月 15 日 10:24:48

有任何想法吗?

4

8 回答 8

58

而不是从

new Date()

从...开始

new Date(System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(5))

这将为您提供一个Date代表您所需时间点的实例。您无需更改代码的任何其他部分。

于 2013-03-15T10:30:23.870 回答
20

忽略Dates并专注于问题。

我的偏好是使用它,java.util.concurrent.TimeUnit因为它增加了我的代码的清晰度。

在 Java 中,

long now = System.currentTimeMillis();

now使用后 5 分钟TimeUtil是:

long nowPlus5Minutes = now + TimeUnit.MINUTES.toMillis(5);

参考:http ://docs.oracle.com/javase/7/docs/api/java/util/concurrent/TimeUnit.html

于 2015-01-30T20:42:15.597 回答
16

您应该使用Calendar 类来操作日期和时间:

Calendar 类是一个抽象类,它提供了在特定时刻和一组日历字段(例如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等)之间进行转换的方法,以及用于操作日历字段(例如获取日期)的方法下周的

  Date dNow = new Date( ); // Instantiate a Date object
  Calendar cal = Calendar.getInstance();
  cal.setTime(dNow);
  cal.add(Calendar.MINUTE, 5);
  dNow = cal.getTime();
于 2013-03-15T10:30:28.433 回答
7
于 2017-01-23T06:39:20.103 回答
5

用这个 ...

    Calendar calendar = Calendar.getInstance();
    System.out.println(calendar.getTime());
    calendar.add(Calendar.MINUTE, 5);
    System.out.println(calendar.getTime());
于 2013-03-15T10:28:29.280 回答
2
Date dNow = new Date(System.currentTimeMillis()+5*60*1000)
SimpleDateFormat ft = new SimpleDateFormat ("MMM d, yyyy k:mm:ss");
System.out.println(ft.format(dNow));

在不推荐使用的方法的帮助下getMinutes(),setMinutes(int)

 Date dNow = new Date( ); // Instantiate a Date object
 int mm = dNow.getMinutes();
 dNow.setMinutes(mm+5);
于 2013-03-15T10:38:05.240 回答
0

Java 日期使用以毫秒为单位的Unix 时间。因此,您要么计算 5 分钟的毫秒数,然后将它们添加到您的日期,要么使用为您执行此操作的 Calendar 类。

于 2013-03-15T10:30:52.247 回答
0

你可以试试这个最好的表现

    GregorianCalendar gc = new GregorianCalendar();
            gc.setTimeInMillis(System.currentTimeMillis());
            gc.add(Calendar.MINUTE, -5);
            System.out.println(new java.util.Date().getTime());
            System.out.println(new java.util.Date(gc.getTime().getTime()).getTime());
于 2018-03-02T05:35:48.967 回答