Skip to content

fwrite(dateTimeAs = "write.csv") is not aligned with write.csv() #7653

@ismirsehregal

Description

@ismirsehregal

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  

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions