【发布时间】:2014-01-29 17:17:11
【问题描述】:
我有一个日期数组。我想为数组中的每个元素添加 20 秒。 我试过了
for(int i=0i<20;i++)
{
date1[i]=date1[i].gettime()+20;
}
这给出了一个 long int 值。但我需要的是时间格式结果。我的问题是可以使用内置函数添加秒数,或者手动函数应该写成相同的。
【问题讨论】:
我有一个日期数组。我想为数组中的每个元素添加 20 秒。 我试过了
for(int i=0i<20;i++)
{
date1[i]=date1[i].gettime()+20;
}
这给出了一个 long int 值。但我需要的是时间格式结果。我的问题是可以使用内置函数添加秒数,或者手动函数应该写成相同的。
【问题讨论】:
这是因为Date.getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。因此,您正在使用 Long 重置数组中的值。要将其转换回 Date,您需要像这样构造新的 Date 对象。
for(int i = 0; i < 20; i++) {
date1[i] = new Date(date1[i].gettime() + TimeUnit.SECONDS.toMillis(20));
}
或者像这样设置时间:
for(int i = 0; i < 20; i++) {
date1[i].setTime(date1[i].gettime() + TimeUnit.SECONDS.toMillis(20));
}
但我强烈建议您使用 Joda Time 而不是 Java Date API
【讨论】:
getTime() 方法以毫秒为单位返回时间。将 20000 添加到其中,然后根据这些毫秒创建日期。 Java 文档告诉您如何将毫秒转换为日期。
【讨论】: