我正在使用Rome RSS编写RssFeed,并在调用StringWriter的toString方法后更改TimeZone。 我希望固定的Timezone和Time独立于运行代码的机器。
在调用toString方法之前,日期如下所示:
Mon Nov 10 00:00:00 CET 2014
调用toString方法后,它看起来像这样:
Sun, 09 Nov 2014 23:00:00 GMT
在
之前直接设置Locale时,它也不会改变任何内容Locale.setDefault(new Locale("en", "CA"));
String rssFeedString = writer.toString();
如何防止此行为? 我没有直接访问使用DateFormater,因为它在ROME RSS API中。
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed, writer);
Locale.setDefault(new Locale("de", "DE"));
String rssFeedString = writer.toString();
writer.close();
答案 0 :(得分:2)
将toString()
方法视为日期,时间和数字的信息。你不应该依赖输出,因为它可能是依赖于语言环境的(你已经发现了)。
我建议你使用DateFormat类来修改关于系统区域设置的日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
// optionally you can set your timezone
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(sdf.format(someDate));