如何将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而不是纪元时间戳。

    比较13352055435112012-04-23T18:25:43.511Z ,可以注意到:

  • 它是人类可读的,但也简洁
  • 它排序正确
  • 它包括小数秒,可以帮助重建年表
  • 它符合ISO 8601
  • 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

    上一篇: How to convert firebase timestamp into date and time

    下一篇: Parse JSON date into NSDate depending user settings