Ich habe ein Datum mit einer Zeitzone definiert, aber wenn ich es mit dem scales
Paket date_format
ausdruck, gibt es mir die Zeit in UTC, was für meinen Zweck peinlich ist.date_format Zeitzone Strangeness
> library(scales)
> st <- as.POSIXct("2015-10-31 00:00:00",tz="US/Pacific")
> st
[1] "2015-10-31 PDT"
> fmt <- date_format("%Y-%m-%d %R %Z")
> fmt(st)
[1] "2015-10-31 07:00 UTC"
Interessanter das funktioniert (so POSIXct
die Zeitzone zu verstehen scheint) - aber gibt mir nicht genug Kontrolle über das Format:
> format(st,usetz=T)
[1] "2015-10-31 PDT"
Diese Unzuverlässigkeit bei der Hilfe für ?date_format
angedeutet wird:
Wenn% z oder% Z für die Ausgabe mit einem Objekt mit einer zugewiesenen Zeitzone verwendet wird, wird versucht, die Werte für diese Zeitzone zu verwenden - b ut es ist nicht garantiert, um erfolgreich zu sein.
Also meine Frage ist, wie mache ich machen es gelingt?
Vorschlagen von Workarounds ist in Ordnung und kann upvotes kontaktieren, aber bitte verstehen Sie den Punkt dieser Frage ist, dass ich einen Einblick erhalten möchte, was mit date_format
vor sich geht.
Sie sollten * Drei-Buchstaben-Zeitzonen-Akronyme vermeiden, da sie * nicht * standardisiert sind. PDT kann verschiedene Dinge für verschiedene Länder bedeuten. Das * seltsame * Ding ist, dass "st" 'PDT' anstelle von zB' .... 00:00:00 + 07: 00Z' zurückgegeben hat. Die Lokalisierung von R ist nicht sehr konsistent - in diesem Fall verwendete "st" ein benutzerdefiniertes Format, das. Wenn Sie Daten in einem * spezifischen * Format anzeigen möchten, definieren Sie sie explizit in Ihrer Formatzeichenfolge. Was ist in diesem Fall das genaue Format, das Sie zurückgeben möchten? –
Vermeiden Sie die Zeitzonen mit drei Buchstaben? Ich habe sie nicht verwendet, "date_format" und "format". Wie das Beispiel zeigt. –
Welches Format möchten Sie zurückgeben? –