R Language                
            Datum-Zeit-Klassen (POSIXct und POSIXlt)
        
        
            
    Suche…
Einführung
 R enthält zwei Datums- / Zeitklassen - POSIXct und POSIXlt - siehe ?DateTimeClasses . 
Bemerkungen
Fallstricke
Bei POSIXct zeigt Mitternacht nur Datum und Zeitzone an, obwohl die volle Zeit noch gespeichert ist.
verwandte Themen
Spezialisierte Pakete
- Lubridat
Datum-Uhrzeit-Objekte formatieren und drucken
# test date-time object
options(digits.secs = 3)
d = as.POSIXct("2016-08-30 14:18:30.58", tz = "UTC")   
format(d,"%S")  # 00-61 Second as integer
## [1] "30"
format(d,"%OS") # 00-60.99… Second as fractional
## [1] "30.579"
format(d,"%M")  # 00-59 Minute
## [1] "18"
format(d,"%H")  # 00-23 Hours
## [1] "14"
format(d,"%I")  # 01-12 Hours
## [1] "02"
format(d,"%p")  # AM/PM Indicator
## [1] "PM"
format(d,"%z")  # Signed offset
## [1] "+0000"
format(d,"%Z")  # Time Zone Abbreviation
## [1] "UTC"
  ?strptime Informationen zu den ?strptime sowie zu anderen Formaten. 
Analysieren von Zeichenfolgen in Datum-Uhrzeit-Objekten
Die Funktionen zum Analysieren einer Zeichenfolge in POSIXct und POSIXlt verwenden ähnliche Parameter und geben ein ähnlich aussehendes Ergebnis zurück. Es gibt jedoch Unterschiede in der Speicherung des Datums und der Uhrzeit. siehe Anmerkungen."
as.POSIXct("11:38",                        # time string
           format = "%H:%M")               # formatting string
## [1] "2016-07-21 11:38:00 CDT"           
strptime("11:38",                          # identical, but makes a POSIXlt object
         format = "%H:%M")
## [1] "2016-07-21 11:38:00 CDT"
as.POSIXct("11 AM",                   
           format = "%I %p")        
## [1] "2016-07-21 11:00:00 CDT"
Beachten Sie, dass Datum und Zeitzone berechnet werden.
as.POSIXct("11:38:22",                 # time string without timezone
           format = "%H:%M:%S",   
           tz = "America/New_York")    # set time zone
## [1] "2016-07-21 11:38:22 EDT"
as.POSIXct("2016-07-21 00:00:00",
           format = "%F %T")           # shortcut tokens for "%Y-%m-%d" and "%H:%M:%S"
 ?strptime Informationen zu den ?strptime . 
Anmerkungen
Fehlende Elemente
- Wenn kein Datumselement geliefert wird, wird das vom aktuellen Datum verwendet.
- Wenn kein Zeitelement geliefert wird, wird das von Mitternacht verwendet, dh 0s.
-  Wenn weder im String noch im Parameter tzZeitzone angegeben wird, wird die lokale Zeitzone verwendet.
Zeitzonen
-  Die akzeptierten Werte von tzhängen vom Standort ab.-  CSTwird mit"CST6CDT"oder"America/Chicago"
 
-  
-  Für unterstützte Orte und Zeitzonen verwenden Sie: -  In R: OlsonNames()
-  Alternativ versuchen Sie es in R: system("cat $R_HOME/share/zoneinfo/zone.tab")
 
-  In R: 
- Diese Speicherorte werden von der Internet Assigned Numbers Authority (IANA) vergeben.
Datum-Uhrzeit-Arithmetik
Um die Zeit zu addieren / subtrahieren, verwenden Sie POSIXct, da die Zeiten in Sekunden gespeichert werden
## adding/subtracting times - 60 seconds
as.POSIXct("2016-01-01") + 60
# [1] "2016-01-01 00:01:00 AEDT"
## adding 3 hours, 14 minutes, 15 seconds
as.POSIXct("2016-01-01") + ( (3 * 60 * 60) + (14 * 60) + 15)
# [1] "2016-01-01 03:14:15 AEDT"
 Formal kann mit as.difftime Zeiträume angegeben werden, die einem Datums- oder Datumszeitobjekt hinzugefügt werden sollen. Z.B: 
as.POSIXct("2016-01-01")         + 
  as.difftime(3,  units="hours") +
  as.difftime(14, units="mins")  +
  as.difftime(15, units="secs")
# [1] "2016-01-01 03:14:15 AEDT"
 Um die Differenz zwischen Datum und difftime() verwenden Sie difftime() für Unterschiede in Sekunden, Minuten, Stunden, Tagen oder Wochen. 
# using POSIXct objects
difftime(
  as.POSIXct("2016-01-01 12:00:00"), 
  as.POSIXct("2016-01-01 11:59:59"), 
  unit = "secs")
# Time difference of 1 secs
 Um Sequenzen von Datum und seq.POSIXt() zu erzeugen, verwenden Sie seq.POSIXt() oder einfach seq .