【问题标题】:Time conversion from seconds to date issue从秒到日期的时间转换问题
【发布时间】:2020-08-28 11:06:36
【问题描述】:

我有以下Long 变量以秒为单位保存纪元值,我正在尝试将其转换为Date

val seconds = 1341855763000
val date = Date(TimeUnit.SECONDS.toMillis(seconds))

输出比我预期的要差。我哪里做错了?

Actual: Wed Sep 19 05:26:40 GMT+05:30 44491
Expected: Monday July 9 11:12:43 GMT+05:30 2012

【问题讨论】:

标签: java date kotlin time


【解决方案1】:

输出比我预期的要差。我哪里做错了?

Actual: Wed Sep 19 05:26:40 GMT+05:30 44491
Expected: Monday July 9 11:12:43 GMT+05:30 2012

该值已经在milliseconds 中,使用TimeUnit.SECONDS.toMillis(seconds) 是错误地将它乘以1000

通过使用modern date-time API:

import java.time.Instant;

public class Main {
    public static void main(String[] args) {
        Instant instant = Instant.ofEpochMilli(1341855763000L);
        System.out.println(instant);
    }
}

输出:

2012-07-09T17:42:43Z

使用旧版java.util.Date

import java.util.Date;

public class Main {
    public static void main(String[] args) {
        System.out.println(new Date(1341855763000L));
    }
}

输出:

Mon Jul 09 18:42:43 BST 2012

我建议您从过时且容易出错的 java.util 日期时间 API 和 SimpleDateFormat 切换到 modern java.time 日期时间 API 和相应的格式化 API(包,java.time.format)。从 Trail: Date Time 了解有关现代日期时间 API 的更多信息。

【讨论】:

  • 有意思,为什么会有1小时的差异?
  • 这是因为我在英国(英国夏令时)并且java.util.Date 使用默认时区。这就是为什么使用现代日期时间 API(例如java.time.Instant)更为明智的原因,您可以在其中处理和呈现日期和时间以及时区信息。
  • 很高兴知道!让我探索java.time
【解决方案2】:

您拥有的值不是以秒为单位,而是以毫秒为单位。删除“秒到毫秒”的转换。

val milliSeconds = 1341855763000
val date = Date(milliSeconds)

【讨论】:

  • 我向未来前进!
【解决方案3】:

您的值:1341855763000 不是以秒为单位,而是以毫秒为单位。 当前时间戳为: 新日期().getTime() => 1598612990351 与 相同的位数: 1341855763000

如果您将 1341855763000 乘以 1000(如您所说),则得出年份: JC 之后的 44491 :D 祝你有美好的一天

【讨论】:

    【解决方案4】:

    我认为您的时间实际上以毫秒为单位。如果我使用这个website 转换1341855763000 它给了我你预期的时间,这也是:

    fun main() {
      val millis = 1341855763000
      val date = Date(millis)
      println(date)
    }
    

    或者,您也可以使用秒:

    fun main() {
      val seconds = 1341855763L
      val date = Date(TimeUnit.SECONDS.toMillis(seconds))
      println(date)
    }
    

    除以1000

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2017-06-05
      • 1970-01-01
      相关资源
      最近更新 更多