Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java androidunix时间戳转换器_Java_Android_Date_Timestamp - Fatal编程技术网

Java androidunix时间戳转换器

Java androidunix时间戳转换器,java,android,date,timestamp,Java,Android,Date,Timestamp,在我的android应用程序中,我以这种方式创建时间戳: final BackupInfo backupInfo = new BackupInfo(description, System.currentTimeMillis(), backupContacts.size()); 例如,使用System.currentTimeMillis() 现在,我使用以下方法将其转换回最新格式: public static String getDate(long time) { Calendar c

在我的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位。但是如果我去一个在线转换器,比如我把
1403022360
(由服务器生成的TS)放进去,我会得到一个正确的日期


有人能解释一下为什么会有这种差异,我的
getDate
方法有什么错误,我无法解码从服务器收到的时间戳吗?

您的服务器以秒为单位返回时间戳,所以乘以1000就得到毫秒

在线转换器工作正常,因为它们假设,如果数字足够大,则以毫秒为单位,如果短,则以秒为单位


Java/Android日期都是
长的
类型,因此它们可以保留毫秒以获得更高的精度。

您的服务器正在以秒为单位返回时间戳,因此乘以1000可以得到毫秒

在线转换器工作正常,因为它们假设,如果数字足够大,则以毫秒为单位,如果短,则以秒为单位


Java/Android日期都是
长的
类型,因此它们可以保留毫秒以获得更高的精度。

您的服务器正在以秒为单位返回时间戳,因此乘以1000可以得到毫秒

在线转换器工作正常,因为它们假设,如果数字足够大,则以毫秒为单位,如果短,则以秒为单位


Java/Android日期都是
长的
类型,因此它们可以保留毫秒以获得更高的精度。

您的服务器正在以秒为单位返回时间戳,因此乘以1000可以得到毫秒

在线转换器工作正常,因为它们假设,如果数字足够大,则以毫秒为单位,如果短,则以秒为单位


Java/Android日期都是
长的
类型,因此它们可以保留毫秒以提高精度。

是的,你是对的!它正在工作,我会在最短时间内接受你的回答:)谢谢!是的,你说得对!它正在工作,我会在最短时间内接受你的回答:)谢谢!是的,你说得对!它正在工作,我会在最短时间内接受你的回答:)谢谢!是的,你说得对!它正在工作,我会在最短时间内接受你的回答:)谢谢!