如何将Firebase时间戳转换为日期和时间
我试图从Firebase时间戳中获取日期和时间,如下所示:
Date date=new Date(timestamp*1000);
SimpleDateFormat sfd = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
sfd.format(date)
但我得到的结果如下所示:
:02-02-48450 04:21:54
:06-02-48450 10:09:45
:07-02-48450 00:48:35
正如你所看到的那一年不像我们生活的那样。
所以,请帮我解决这个问题。
您的时间戳1466769937914
等于2016-06-24 12:05:37 UTC
。 问题在于,您将时间戳乘以1000,无缘无故,因此结果为1466769937914000
。 而这相当于48450-02-01 21:51:54 UTC
,所以你得到的结果在技术上是正确的,并且所有工作都很好。 你只是用错误的输入数据提供你的代码,这是我们唯一必须修复的部分。 一个解决方案是简单地删除乘法,你应该都很好:
SimpleDateFormat sfd = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
sfd.format(new Date(timestamp))
根据Firebase文档,可用的JSON类型包括:
String
Long
Double
Boolean
Map<String, Object>
List<Object>
引用另一个堆栈溢出帖子,我建议你使用JSON日期字符串格式yyyy-MM-dd'T'HH:mm:ss.SSSZ
而不是纪元时间戳。
比较1335205543511
至2012-04-23T18:25:43.511Z
,可以注意到:
ISO 8601在国际上已有十多年的历史,并得到W3C,RFC3339和XKCD的认可
String time = dataSnapshot.child(“timeStamp”)。getValue()。toString(); Long t = Long.parseLong(time);
日期myDate =新日期(t * 1000);
结果
5月11日星期五05:37:58 GMT + 06:30
链接地址: http://www.djcxy.com/p/46663.html