我正在尝试将当前时间保存到共享首选项中,但出于某种原因,当前时间是一个荒谬的数量,在未来的47486
年。
我已经检查了设备本身的日期设置和正确的日期,我无法在任何地方找到这样的问题。我希望有人可以帮助我。
以下是问题所在:
public static void setLastSyncSucceeded(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
long currentTime = System.currentTimeMillis();
sp.edit().putLong(PREF_LAST_SYNC_SUCCEEDED, currentTime).commit();
}
所以基本上在我调试时我注意到currentTime
是1436374427923
Tue, 23 Nov 47486 00:38:43 GMT
...
答案 0 :(得分:4)
你所拥有的值是毫秒(如declare module Express {
export interface Session {
returnTo: string;
}
}
中所示),你将它视为几秒钟。
将它除以一千(即将它变成几秒),你得到更明智的currentTimeMillis
值。
答案 1 :(得分:0)
System.currentTimeMillis()返回自1970-01-01 00:00:00 UTC以来的毫秒数。
UTC是世界上常见的时间标准。它也被认为是格林威治标准时间(格林威治标准时间) - 不是同样的事情 - 。
因此,如果您处于不同的时区,则应考虑到这一点。
答案 2 :(得分:0)
如果你想从当前的毫秒获得格式化的日期,那么你可以这样做:
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy HH:mm");
String formattedActualDate = sdf.format(new Date());
或轻松:
public static void setLastSyncSucceeded(final Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
long currentTime = System.currentTimeMillis();
sp.edit().putLong(PREF_LAST_SYNC_SUCCEEDED, formattedActualDate).commit();
}
最后:
{{1}}