使用新日期Android时的日期问题

问题描述

我正在写信给你,看看是否有人可以指导我这段代码的情况...

我有以下代码

SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy,HH:mm:ss");

Date datofecha1 = new Date (time1);
String datotexto1 = formatter.format(datofecha1);
System.out.println(datotexto1);

时间长了1,我正在从我的云firebase数据库获取它,它的编号为1597081737457

代码应该打印出我

I/System.out: 10.08.2020,13:48:57

但它会打印我

I/System.out: 31.12.1969,20:00:00

如果我更改数据库中的long,它给我另一个打印日期,它总是打印1969年12月31日,完全是疯狂的(无论我输入的长度如何)。

一个奇怪的事实是,如果我以这种方式将long直接放在代码中:

SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy,HH:mm:ss");

Date datofecha1 = new Date (1597081737457L);
String datotexto1 = formatter.format(datofecha1);
System.out.println(datotexto1);

如果日期显示我很完美,请按照以下方式

作为一个奇怪的事实,在数据库中,我只能输入一个长期的数字,不能输入必须长期存储的最后一个L,而且我真的很想尝试打印日期长时间使用,而不是12月31日这一天总是让我失望。

解决方法

通过附加异步侦听器来检索Firebase中存储的数据。您必须在监听器中使用value或确保监听器在触发之前被触发