【问题标题】:Scala UTC timestamp in seconds since January 1st, 1970自 1970 年 1 月 1 日以来的 Scala UTC 时间戳(以秒为单位)
【发布时间】:2012-07-06 07:29:57
【问题描述】:

如何获取自 1970 年 1 月 1 日以来的 Scala UTC 时间戳(以秒为单位)?

【问题讨论】:

    标签: scala timestamp utc


    【解决方案1】:

    与在 Java 中的方式相同:

    val timestamp: Long = System.currentTimeMillis / 1000
    

    【讨论】:

    • 你确定这是UTC时间戳,而不是服务器上设置的时间的时间戳?
    • 该值取决于系统时钟,但该值是从 1/1/70 UTC 开始计算的。来自 JavaDoc “返回:当前时间与 1970 年 1 月 1 日 UTC 午夜之间的差异,以毫秒为单位。”(注意:我完全不确定这是否考虑了闰秒,例如刚刚添加的闰秒另一个晚上。所以我完全不确定我是否会相信它,例如天文计算。)
    • @LarryOBrien 似乎取决于底层操作系统来考虑闰秒,但从Date javadoc "大多数计算机时钟不够准确,无法反映飞跃-第二个区别。”
    • 不要认为闰秒在 Unix 时间戳中很重要。无论人们对他们的 AM 或 PM 说什么或做什么,毫秒时间戳都会以每秒 1000 的速度前进。
    【解决方案2】:

    从 Java 8 开始,可以这样做:

    import java.time.Instant
    unixTimestamp : Long = Instant.now.getEpochSecond
    

    在这里通过 micha 的回答:https://stackoverflow.com/a/24703573/577199

    【讨论】:

      猜你喜欢
      • 2010-12-29
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 2020-02-15
      • 2012-02-19
      • 2014-04-28
      相关资源
      最近更新 更多