【发布时间】:2017-07-28 17:19:45
【问题描述】:
我在 ios+firebase 中做了一个小应用程序,现在我正在尝试连接 android。在 ios 中,我将日期保存为双精度(例如:-242528463.775282),但随后我尝试在 java 中检索相同的双精度,它给了我另一个日期。
在 IOS - 01.07.2009 在 Java 中 - 29.12.1969
double myDouble = date;
long myLong = (long) (myDouble);
System.out.println(myLong);
Date itemDate = new Date(itemLong);
String myDateStr = new SimpleDateFormat("dd-MM-yyyy").format(itemDate);
editTextDate.setText(myDateStr);
是否可以在不转换为 long 的情况下将 double 转换为 date?
【问题讨论】:
-
您是否将日期存储为时间戳?
-
double 代表什么?自 1970 年 1 月 1 日以来的日子?还有什么?
-
double 表示 timeIntervalSinceNow
-
顺便说一句,这是一种存储日期时间值的糟糕方法。原因之一是您使用浮点技术可能会更改您的数据。浮点牺牲了执行速度的准确性。这样做时,可能会将无关的数字添加到您的小数部分。我建议使用 ISO 8601 格式的字符串,或者如果您的数据库提供日期时间数据类型。
标签: java date type-conversion double long-integer