【问题标题】:How do I add time to a timestamp?如何将时间添加到时间戳?
【发布时间】:2012-10-24 14:27:27
【问题描述】:

我需要将 14 分 59 秒添加到数组中的未知时间。我该怎么做呢?这是我目前所拥有的:

Date duration = df.parse("0000-00-00 00:14:59");

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

时间没有改变。谢谢!

我已经完成了我的研究。我无法粘贴我拥有的整个代码。但主要是我不想让你读完。只是寻找如何添加两个时间戳的简单答案。

【问题讨论】:

  • arrayOpportunity[2]中的对象是什么类型的?
  • 这是一个字符串。是这个问题吗?
  • 抱歉延迟回复...第一次使用这个网站。
  • 它可能是。您必须将字符串转换为适当的类型,例如Date,然后在该对象上添加时间。

标签: java timestamp add


【解决方案1】:

如果您谈论的是java.sql.Timestamp,它有一个名为setTime 的方法。 java.util.Date 也有一个 setTime 方法来处理这类事情。

你可以这样:

static final Long duration = ((14 * 60) + 59) * 1000;

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

【讨论】:

    【解决方案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 有什么建议吗?
    【解决方案3】:

    如果你只是想添加时间,我建议使用Joda Time。

    LocalTime 类允许您像这样添加持续时间:

    LocalTime timeSum = time.plusMinutes(14).plusSeconds(59);
    

    【讨论】:

      【解决方案4】:

      只需使用#getTime() 和#setTime() 添加适当的毫秒数:

      timeStamp.setTime(timeStamp.getTime() + (((14 * 60) + 59)* 1000));
      

      【讨论】:

      • 请注意,这不包括夏令时,甚至我们刚刚拥有的闰秒。
      【解决方案5】:

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

      您拥有的 Date 对象可能有效,但它并不真正代表 14 分 59 秒,它仅代表日历中的特定时间(例如,1970 年 1 月 1 日 00:14 纪元开始后的 14 分钟 59 :59)。

      【讨论】:

        猜你喜欢
        • 2023-03-31
        • 2017-10-22
        • 1970-01-01
        • 2015-03-09
        • 2011-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-26
        相关资源
        最近更新 更多