【发布时间】:2014-08-07 19:35:58
【问题描述】:
在我的 android 应用中,我以这种方式创建时间戳:
final BackupInfo backupInfo = new BackupInfo(description, System.currentTimeMillis(), backupContacts.size());
例如,使用System.currentTimeMillis()
现在我使用以下方法将其转换回日期格式:
public static String getDate(long time)
{
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(time);
String date = DateFormat.format("dd-MM-yyyy HH:mm:ss", cal).toString();
return date;
}
而且效果很好。
但现在我从服务器收到时间戳,而我从getDate 收到的日期字符串不是正确的日期。
实际案例:
我的应用生成此时间戳:1403022230766
getDate 返回这个日期:17-06-2014 05:23:50,这对我来说是正确的。
现在问题来了,我从服务器得到这个时间戳:1403022360
getdate 返回这个日期:16-01-1970 18:43:42 这是完全错误的,它应该接近我的应用程序生成的时间戳。
服务器返回的时间戳少了 3 位数。但是如果我去一个在线转换器,比如this one,然后输入1403022360(服务器生成的TS),我会得到一个正确的日期。
谁能解释我为什么会出现这种差异以及我在getDate 方法中做错了什么,我无法解码从服务器接收到的时间戳?
【问题讨论】:
标签: java android date timestamp