如何将时间添加到时间戳?

6
我需要将14分钟59秒加到一个未知时间的数组中。我该如何做?以下是我的代码:
Date duration = df.parse("0000-00-00 00:14:59");

arrayOpportunity[2] = arrayOpportunity[2] + duration;

时间没有被更改。谢谢!

我已经做了研究。我不能粘贴我拥有的全部代码。但是主要的是,我不想让你读完所有的代码。只是想要一个简单的答案,如何添加两个时间戳。


3
arrayOpportunity[2] 中的对象属于哪种类型? - Niklas
这是一个字符串。有问题吗? - Samuel Knox
抱歉回复晚了...第一次使用这个网站。 - Samuel Knox
很可能是这样。您需要将字符串转换为适当的类型,例如Date,然后在该对象上添加时间。 - Niklas
5个回答

10
如果您在谈论一个java.sql.Timestamp,它有一个名为setTime的方法。同样,java.util.Date也有一个setTime方法可以使用。您可以这样做:
static final Long duration = ((14 * 60) + 59) * 1000;

oldTimestamp.setTime(oldTimestamp.getTime() + duration);

2
如果您只想添加时间,我建议使用Joda Time
LocalTime允许您像这样添加持续时间:
LocalTime timeSum = time.plusMinutes(14).plusSeconds(59);

2
如果您想添加毫秒时间,只需加上:
  (((14 * 60) + 59) * 1000) <-- Mili second value of 14 m and 59 sec

谢谢!我现在离目标更近了。现在我这么做了: System.out.println(arrayOpportunity[2]); arrayOpportunity[2] += (((14 * 60) + 59) * 1000); System.out.println(arrayOpportunity[2]);输出结果:2012-11-15 04:00:00 2012-11-15 04:00:00899000有什么建议吗? - Samuel Knox

1
只需使用#getTime()#setTime()添加适当的毫秒数即可:
timeStamp.setTime(timeStamp.getTime() + (((14 * 60) + 59)* 1000));

1
请小心,这并没有考虑夏令时和我们刚刚经历的闰秒。 - roxan

1

arrayOpportunity[2] = arrayOpportunity[2] + 14*60*1000 + 59*1000;

你手头的日期对象可能可用,但它并不真正代表14分59秒,它只是代表一个特定的日历时间(例如,在纪元开始后的第14分钟59秒,即1970年1月1日00:14:59)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接