1. 时区切换时SimpleDateFormat 导致的转换时间不正确
来看一段代码
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00", Locale.getDefault());
Date date = new Date(time);
String dateStr = sdf.format(date);
看起来是不是没啥问题,但是如果你进入应用后再切换时区,转换出来的时间就不是0点,需要加上以下代码才能正常使用。
sdf.setTimeZone(TimeZone.getDefault());
PS:其实更靠谱的是不要用这种方式转换,而是new对象后直接赋值year,month,day。