Ich schreibe ein RssFeed mit Rom RSS und nach dem Aufruf der toString-Methode des StringWriter ändert es die TimeZone. Ich möchte eine feste Zeitzone und Zeit unabhängig von der Maschine haben, auf der der Code läuft.toString Methode von StringWriter ändert TimeZone
Vor dem Aufruf der Methode toString das Datum wie folgt aussieht:
Mon Nov 10 00:00:00 CET 2014
Nach der toString-Methode aufrufen sieht es wie folgt aus:
Sun, 09 Nov 2014 23:00:00 GMT
Es ist auch nicht alles ändern, wenn ich die Locale gesetzt direkt vor
Locale.setDefault(new Locale("en", "CA"));
String rssFeedString = writer.toString();
Wie kann ich dieses Verhalten verhindern? Ich habe keinen direkten Zugriff auf DateFormater, weil es in der ROM RSS API ist.
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed, writer);
Locale.setDefault(new Locale("de", "DE"));
String rssFeedString = writer.toString();
writer.close();
Ihre Frage sehr unklar ist. Abgesehen von allem anderen haben Sie uns nicht ausdrücklich gesagt, was Sie formatieren. Meine * Vermutung * ist, dass es eine java.util.Date ist, aber das ist unklar. Bitte geben Sie eine [MCVE] an. –
Err, nein. 'StringWriter' akkumuliert Zeichen in einem char-Array und seine' toString() 'Methode gibt diese Zeichen als' String' zurück. Es hat überhaupt nichts mit Zeitzonen zu tun. Deine Annahme ist lächerlich. – EJP
https://github.com/rometools/rome/issues/188 Hier wird das Verhalten erläutert. – TimSchwalbe