【问题标题】:Java convert unix timestamp to wrong timeJava将unix时间戳转换为错误的时间
【发布时间】:2015-01-29 11:40:40
【问题描述】:

我在 mysql 中存储了 unix 时间戳。我把它转换成时间。时间显示错误。

代码如下:

Date date = new Date((long)timestamp*1000); 
SimpleDateFormat sdf = new SimpleDateFormat("h:mm a"); 
sdf.setTimeZone(TimeZone.getTimeZone("GMT+5:30"));
timeString = sdf.format(date);
System.out.println(timeString);`

timestamp 是包含 unix 时间戳的变量。
例如:timestamp=1417437428505 应该显示 6:07 PM 和 12:31 AM

有什么解决办法?

【问题讨论】:

    标签: java unix unix-timestamp


    【解决方案1】:

    您将自 Unix 纪元以来已经的时间戳乘以 1000。您只需要:

    Date date = new Date(timestamp);
    

    如果您查看所有日期,而不仅仅是时间,您会发现当前是 46886!

    【讨论】:

      【解决方案2】:

      您确定需要乘以 1000 吗?我尝试通过不乘以 Date date = new Date(timestamp); 并打印 6:07 PM

      【讨论】:

        【解决方案3】:

        删除乘以 1000

        日期 date = new Date((long)timestamp*1000);

        比它有效。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-18
          • 2013-04-07
          • 2020-10-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-30
          • 2015-02-09
          相关资源
          最近更新 更多