我正在编写带有罗马RSS的RSSFEED,并在调用字符串Wrriter的ToString方法后,它会更改时区。我想拥有一个固定的时区和时间独立于代码正在运行的机器。
在调用ToString方法之前,日期如下:
Mon Nov 10 00:00:00 CET 2014
调用ToString方法后,看起来像这样:
Sun, 09 Nov 2014 23:00:00 GMT
当我直接在
之前设置语言环境时,它也不会更改任何内容Locale.setDefault(new Locale("en", "CA"));
String rssFeedString = writer.toString();
如何防止这种行为?我无法直接访问使用dateformater,因为它在罗马RSS API中。
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed, writer);
Locale.setDefault(new Locale("de", "DE"));
String rssFeedString = writer.toString();
writer.close();
将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));