Ich versuche, einige Zeitstempel (Charakter) zu einem POSIXct
Objekt zu konvertieren:Parsing Zeitstempel - AM/PM nicht erkannt
> u <- "December 05, 2017 1:00 PM"
Ich verwende as.POSIXct
wie folgt:
> as.POSIXct(u, format = "%B %d, %Y %H:%M %p", tz = "UTC")
[1] "2017-12-05 01:00:00 UTC"
ich würde erwarten, dass der Ausgang 13
für die Stunde zu zeigen, statt 01
:
"2017-12-05 13:00:00 UTC"
Ich habe die Frage hier geschrieben: Parse timestamp with a.m./p.m aber ich habe anscheinend die richtige Eingabe und Format-String (mit %p
).
as.POSIXct
scheint den AM/PM-Teil der Zeichenfolge vollständig zu ignorieren und daher funktionieren die AM-Zeitstempel gut, aber die PM-Marken liegen um 12 Stunden zurück. Hier einige weitere Daten dies zu verdeutlichen:
> sample_tstamps
[1] "December 05, 2017 8:00 AM" "December 05, 2017 9:00 AM" "December 05, 2017 10:00 AM" "December 05, 2017 11:00 AM"
[5] "December 05, 2017 12:00 PM" "December 05, 2017 1:00 PM" "December 05, 2017 2:00 PM" "December 05, 2017 3:00 PM"
[9] "December 05, 2017 4:00 PM" "December 05, 2017 5:00 PM"
> as.POSIXct(sample_tstamps, format = "%B %d, %Y %H:%M %p", tz = "UTC")
[1] "2017-12-05 08:00:00 UTC" "2017-12-05 09:00:00 UTC" "2017-12-05 10:00:00 UTC" "2017-12-05 11:00:00 UTC"
[5] "2017-12-05 12:00:00 UTC" "2017-12-05 01:00:00 UTC" "2017-12-05 02:00:00 UTC" "2017-12-05 03:00:00 UTC"
[9] "2017-12-05 04:00:00 UTC" "2017-12-05 05:00:00 UTC"
Danke, es scheint zu funktionieren und ich werde den Code aktualisieren. Ich bin jedoch überrascht - ich habe '% H' in der Vergangenheit (siehe https://www.stat.berkeley.edu/~s133/dates.html) immer ohne Probleme verwendet. – Gautam