【发布时间】:2014-01-17 08:46:58
【问题描述】:
我在 sqlite 数据库中有记录的特定日期字段,它以特定格式保存。
为了将此 date 列转换为某种格式,我进行了一些日期格式设置并将其添加到数组 dbDates 中,代码如下-
SimpleDateFormat dateIn = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
dbDates.add(dateIn.format(formatter.parse("2013-12-16T02:00:00.000Z");
dbDates.add(dateIn.format(formatter.parse("2013-12-15T01:30:00.000Z");
控制台中打印的 dbDates 现在采用以下格式 -
Mon Dec 16 02:00:00 GMT+05:30 2013
Sun Dec 15 01:30:00 GMT+05:30 2013
注意:如前所述,+05:30 被添加到每个 dbDate 的末尾。
当我将其转换为用户时区时,这会导致问题。
所以添加这一行----
dateIn.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
将输出更改为 -
Sun Dec 15 12:30:00 PST 2013
Sun Dec 14 12:00:00 PST 2013
但是,正确的输出应该是:
Sun Dec 15 18:00:00 PST 2013
Sun Dec 14 17:30:00 PST 2013
因此,输出有 +05:30 的差异。如何解决?
【问题讨论】:
标签: java android sqlite timezone simpledateformat