【发布时间】: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。使用起来感觉好多了。 -
您好,感谢您的建议