-
Notifications
You must be signed in to change notification settings - Fork 1k
Open
Description
I just tried to replace some write.csv calls with fwrite using its dateTimeAs = "write.csv" option and noticed that by default (without setting digits.secs) fwrite removes the millisecond portion from the timestamps, which is not (or no longer) the case when using write.csv.
The background was discussed here. However, it seems only a corresponding test was adapted and fwrite was not aligned with write.csv.
Is this intentional? I think it's confusing.
Minimal reproducible example
library(data.table)
options("digits.secs")
# options(digits.secs = 3L)
DT <- data.table(TS = as.POSIXct("2026-02-26 13:21:49.123"))
write.csv(DT, file = "write.csv", quote = FALSE, row.names = FALSE)
readLines("write.csv")
# [1] "TS" "2026-02-26 13:21:49.123"
fwrite(DT, file = "fwrite.csv", dateTimeAs = "write.csv")
readLines("fwrite.csv")
# [1] "TS" "2026-02-26 13:21:49"
sessionInfo()
R version 4.5.2 (2025-10-31 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 10 x64 (build 19045)
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=English_United States.utf8 LC_CTYPE=English_United States.utf8
[3] LC_MONETARY=English_United States.utf8 LC_NUMERIC=C
[5] LC_TIME=English_United States.utf8
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.18.2.1
loaded via a namespace (and not attached):
[1] compiler_4.5.2 cli_3.6.5 tools_4.5.2 rstudioapi_0.18.0 pkgload_1.5.0
[6] rlang_1.1.7
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels