加入收藏 | 设为首页 | 会员中心 | 我要投稿 天瑞地安资讯网 (https://www.52baoding.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Java 将时间戳转换为时间给出了错误的时间

发布时间:2022-12-13 14:33:16 所属栏目:Unix 来源:互联网
导读: Java 将时间戳转换为时间给出了错误的时间
javaandroid
Java 将时间戳转换为时间给出了错误的时间,java,android,simpledateformat,unix-timestamp,Java,Android,Simpledateformat,Unix Tim

Java 将时间戳转换为时间给出了错误的时间

javaandroid

Java 将时间戳转换为时间给出了错误的时间,java,android,simpledateformat,unix-timestamp,Java,Android,Simpledateformat,Unix Timestamp,我不知道我做错了什么。我有一个时间戳(长),并试图将其更改为可读格式这是时间戳:1404162530517当我用历元转换器验证时间时,它说是下午5:08(正确)当我尝试使用我的代码来解析它时,它会显示10:21PM(错误)以下是不起作用的代码:long unixSeconds = Long.parseLong(tstamp); Date date = new Date(unixSeconds*1000L); // *1000 is to convert seconds to mi

我不知道我做错了什么。我有一个时间戳(长),并试图将其更改为可读格式

这是时间戳:

1404162530517

当我用历元转换器验证时间时,它说是下午5:08(正确)

当我尝试使用我的代码来解析它时,它会显示10:21PM(错误)

以下是不起作用的代码:

long unixSeconds = Long.parseLong(tstamp);  
Date date = new Date(unixSeconds*1000L); // *1000 is to convert seconds to milliseconds

js unix时间戳转换_unix媒体转换_unix timestamp 转换

SimpleDateFormat dateFormat = new SimpleDateFormat( "EEE MMM dd", Locale.ENGLISH); formattedDate = dateFormat.format(date); SimpleDateFormat timeFormat = new SimpleDateFormat( "hh:mma ", Locale.ENGLISH); timeDate = timeFormat.format(date); System.out.println(tstamp); System.out.println(timeDate);

js unix时间戳转换_unix timestamp 转换_unix媒体转换

如何修复此问题?

您是否尝试过将时间戳除以1000?默认情况下,我想正确的时间戳只有10位

好的,那么你的电脑在时区EDT。但是,Unix时间戳是从Unix纪元(UTC)开始计算的。换句话说,您比UTC晚5小时,因此时间戳是5小时,因为它是从UTC 1970年午夜开始计算的

那么你如何解决这个问题呢?在第一个

SimpleDataFormat

中,输入时区为UTC。应将UTC转换为您的时间(EDT):

是的,我忘了加上那个太棒了!祝你有一个美好的一天只是一个小小的修正/建议:使用“UTC”而不是“Etc/UTC”,后者是不推荐使用的unix媒体转换,并且用于不等于零的反向符号的偏移量。@MenoHochschild修正了这个问题。谢谢我知道那个世界有些东西被贬值了,但我不确定到底是什么。

SimpleDateFormat dateFormat = new SimpleDateFormat(
        "EEE MMM dd", Locale.ENGLISH);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
formattedDate = dateFormat.format(date); 

(编辑:天瑞地安资讯网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章