【问题标题】:How can I get difference between local time in millisecond and unix time in millisecond? (the shift from unixtimestamp)如何获得以毫秒为单位的本地时间和以毫秒为单位的 unix 时间之间的差异? (从 unixtimestamp 的转变)
【发布时间】:2019-04-25 15:41:28
【问题描述】:

我知道我可以将字符串格式的 unixTime 转换为本地时间的毫秒 val currentTimeMillis = serverTimeDateFormat.parse(iso8601).time

我想知道如何在不指定时区的情况下获取设备时区的本地时间(以毫秒为单位)。 我什么时候可以得到本地时间(以毫秒为单位)我可以找到本地时间和当前(unix)时间(以毫秒为单位)之间的差异,因为我需要这个差异。

【问题讨论】:

    标签: java android simpledateformat date


    【解决方案1】:

    您可以像这样根据时区格式化 Unix 时间:

    long unixSeconds = System.currentTimeMillis();
    Date date = new java.util.Date(unixSeconds);
    
    SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
    // Set time zone
    sdf.setTimeZone(java.util.TimeZone.getTimeZone("GMT-4"));
    String formattedDate = sdf.format(date);
    System.out.println(formattedDate);
    

    【讨论】:

    • 您将以毫秒为单位的时间转换为字符串格式时间,但我想以毫秒为单位获取本地时间,而不指定获取设备位置的位置
    【解决方案2】:

    没有“本地 unix 时间”的概念。 Unix 时间戳始终为 UTC,您的“系统”使用时区参数根据给定(或本地或默认)时区显示日期/时间。

    如果您想要以 ms 为单位的“本地 unix 时间”,您必须根据您的时区与 UTC 的差异来添加或减去 ms。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 2017-08-05
      • 1970-01-01
      • 2015-10-17
      相关资源
      最近更新 更多