Android-时间错误毫秒转换

Android-时间错误毫秒转换,android,Android,我对毫秒时间的转换有问题。我使用Calendar类检索当前日期,方法如下: long now = Calendar.getInstance(Locale.getDefault()).getTimeInMillis(); 我将此日期存储在数据库中。检索日期时,我会执行以下操作: Calendar calendar = Calendar.getInstance(Locale.getDefault()); calendar.setTimeInMillis(unixDate);

我对毫秒时间的转换有问题。我使用Calendar类检索当前日期,方法如下:

long now = Calendar.getInstance(Locale.getDefault()).getTimeInMillis();  
我将此日期存储在数据库中。检索日期时,我会执行以下操作:

    Calendar calendar = Calendar.getInstance(Locale.getDefault());
    calendar.setTimeInMillis(unixDate);
    String day = calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault());
    int number = calendar.get(Calendar.DAY_OF_MONTH);
不幸的是,我注意到由于某种原因,由于日期接近午夜,我的代码产生了错误的转换

例如,应为
26-01-2016 23.04UTC
1453849440000
被转换为
27-01-2016 00.04


我想不出是什么问题,知道吗?

那么这是唯一一次转换错误吗?还是每次都是这个问题导致的?您的所有结果是否都比UTC提前一小时?你如何展示你的最终结果?您的设备设置为什么时区?(请注意,
getTimeInMillis
无论您的时区设置为什么,都会返回UTC,但在默认区域设置中显示日历中的时间会将其调整为在该时区中显示。)那么,这是它唯一转换错误的时间吗?还是每次都是这个问题导致的?您的所有结果是否都比UTC提前一小时?你如何展示你的最终结果?您的设备设置为什么时区?(请注意,
getTimeInMillis
无论您的时区设置为什么,都会返回UTC,但在默认区域设置中显示日历中的时间会将其调整为在该时区中显示。)