【发布时间】:2014-12-02 12:08:31
【问题描述】:
好的,所以我在 stackoverflow 上使用了一些帖子来获得一些 XML 数据的半工作转换。
在 XML 数据馈送中,我得到一个日期和时间,作为单独的元素 - 它们是 GMT 时间。
因此,为了将其转换并与本地时间进行比较,我正在执行以下操作(“ne”包含来自 XML 提要的我的对象):
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy HH:mm");
sdf.setTimeZone(TimeZone.getTimeZone(myTimeZone.getDisplayName()));
Date newdate = sdf.parse(ne.getNewsDate().toString() + " " + ne.getNewsTime().toString());
if (newdate.before(new Date()))
//don't use
else
//use
因此,作为 XML 提要中错误转换的日期/时间的示例,我们来看:
<date>
<![CDATA[ 12-02-2014 ]]>
</date>
<time>
<![CDATA[ 12:00am ]]>
</time>
上面的“newdate”返回“Tue Dec 02 23:00:00 AEDT 2014”,而我的系统时钟显示为 2/12/2014 3:00PM” 很明显,它正在将格林威治标准时间 12-02-2014 12:00 转换为未来的时间,而我需要它来实现它是过去的时间。
所以我感到困惑的是,它正确地转换了来自提要的大部分日期/时间,但上面的某些日期/时间是不正确的。
我希望这是有道理的,所以基本上我试图忽略 XML 提要中的日期/时间,方法是将两个单独的日期/时间字段转换为我的本地时间,然后检查它是否过去或不是。
【问题讨论】: