【问题标题】:16 digit timestamp to Java date format16 位时间戳转 Java 日期格式
【发布时间】:2014-08-29 10:19:50
【问题描述】:

我有一个 16 位数的时间戳来自我无法进入的应用程序。

我想在 Java 应用程序中使用它。

有没有可以进行这种转换的函数?

例子:

1409304572565675 是 2014 年 8 月 29 日 11:29

我发现它可能是一个 php 毫秒时间戳,但找不到任何方法将其转换为 Java 中的日期。

【问题讨论】:

    标签: java date timestamp type-conversion


    【解决方案1】:

    如果它真的是 毫秒(格林威治标准时间 1970 年 1 月 1 日 00:00:000),您只需致电 new Date(1409304572565675L)

    但是,这似乎是一个微秒时间戳,即您必须将其除以 1000 才能获得实际毫秒数,因此 new Date(1409304572565675L / 1000) 将是您的选择。

    【讨论】:

    • 是的,以微秒为单位:new Date(1409304572565675L / 1000) 非常完美,谢谢!
    【解决方案2】:

    试试这个System.out.println(new Date(1409304572565675L/1000 )); 不要忘记时区。

    【讨论】:

      【解决方案3】:

      尝试使用 Long.parseLong:

      String x = "1086073200000"
      
      DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
      
      long milliSeconds= Long.parseLong(x);
      System.out.println(milliseconds);
      
      Calendar calendar = Calendar.getInstance();
      calendar.setTimeInMillis(milliSeconds);
      System.out.println(formatter.format(calendar.getTime())); 
      

      【讨论】:

        【解决方案4】:

        您可以在 Calendar 对象上使用 setTimeInMillis() 方法:

        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(temp);
        

        【讨论】:

          猜你喜欢
          • 2017-06-08
          • 2017-12-19
          • 2016-11-26
          • 1970-01-01
          • 2016-11-14
          • 1970-01-01
          • 2019-02-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多