【问题标题】:Date issue when using New Date () android使用新日期()android时的日期问题
【发布时间】:2020-08-11 01:38:59
【问题描述】:

我正在写信给你,看看是否有人可以指导我这段代码发生了什么......

我有以下代码:

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 日那一天。

【问题讨论】:

  • 顺便考虑扔掉早已过时且臭名昭著的麻烦SimpleDateFormat和朋友。看看您是否可以使用desugaring 或将ThreeTenABP 添加到您的Android 项目中,以便使用现代Java 日期和时间API 的java.time。使用起来感觉好多了。
  • 您好,感谢您的建议

标签: android date time


【解决方案1】:

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

【讨论】:

  • 我将使用监听器内部的代码,我会告诉你发生了什么,我认为可能有解决方案,谢谢
  • 您好,感谢您的建议,我已经能够解决我的问题,我已将所有代码移到 addOnSuccessListener 侦听器中,在那里我从数据库接收数据,并且完美,一切正常,所以你帮我解决了,谢谢,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多