Genaue Konvertierung von Zeichen-> POSIXct-> Zeichen mit Datenzeiten unter einer Millisekunde

Ich habe eine Datetime-Zeichenspalte in einer Datei. Ich lade die Datei (in einedata.table) und führen Sie Dinge aus, in die die Spalte konvertiert werden mussPOSIXct. Ich muss dann das schreibenPOSIXct Wert zurück in Datei, aber die Datums- / Uhrzeitangabe stimmt nicht überein (da sie falsch gedruckt wird).

Dieses Druck- / Formatierungsproblem ist allgemein bekannt und wurde bereits mehrmals erörtert. Ich habe einige Posts gelesen, die dieses Problem beschreiben. Die maßgeblichsten Antworten, die ich gefunden habe, werden als Antwort gegebendiese Frage. Die Antworten auf diese Frage bieten zwei Funktionen (myformat.POSIXct undform), die dieses Problem lösen sollen, aber an diesem Beispiel nicht zu arbeiten scheinen:

x <- "04-Jan-2013 17:22:08.139"
options("digits.secs"=6)
form(as.POSIXct(x,format="%d-%b-%Y %H:%M:%OS"),format="%d-%b-%Y %H:%M:%OS3")
[1] "04-Jan-2013 17:22:08.138"
form(as.POSIXct(x,format="%d-%b-%Y %H:%M:%OS"),format="%d-%b-%Y %H:%M:%OS4")
[1] "04-Jan-2013 17:22:08.1390"
myformat.POSIXct(as.POSIXct(x,format="%d-%b-%Y %H:%M:%OS"),digits=3)
[1] "2013-01-04 17:22:08.138"
myformat.POSIXct(as.POSIXct(x,format="%d-%b-%Y %H:%M:%OS"),digits=4)
[1] "2013-01-04 17:22:08.1390"

MeinesessionInfo:

R version 2.15.2 (2012-10-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United Kingdom.1252  LC_CTYPE=English_United Kingdom.1252
[3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C                        
[5] LC_TIME=C                              

attached base packages:
[1] stats     graphics  grDevices datasets  utils     methods   base     

other attached packages:
[1] fasttime_1.0-0   data.table_1.8.9 bit64_0.9-2      bit_1.1-9
[5] sas7bdat_0.3     chron_2.3-43     vimcom_0.9-6    

loaded via a namespace (and not attached):
[1] tools_2.15.2

Antworten auf die Frage(4)

Ihre Antwort auf die Frage