包含千分之一秒的润滑包装分配

时间:2018-01-09 22:29:59

标签: r lubridate

为什么来自R的lubridate包的ymd_hms函数返回“{1}}的”2018-01-09 15:43:44.843 UTC“?

我天真地期望“2018-01-09 15:43:44.844 UTC”。

ymd_hms('2018-01-09T15:43:44.844Z')返回“2018-01-09 15:43:44.822 UTC”。

由于这是GMT / UTC,我不认为夏令时会是一个因素,ymd_hms('2018-01-09T15:43:44.822Z')选项的不同值似乎没有什么区别。

2 个答案:

答案 0 :(得分:0)

来自ymd_hms文件:

  

注意:ymd函数系列基于strptime()

正如here所描述的那样,问题似乎在于strptime是如何截断而不是舍入一秒的分数。到处使用<head> <title>Create Traveler</title> <meta http-equiv="X-UA-Compatible" content="IE=9" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-16" /> 来查看它如何处理不同数量的小数位。

答案 1 :(得分:0)

我宁愿使用:

format(strptime("2018-01-09T15:43:44.844Z", "%Y-%m-%dT%H:%M:%OS", tz = "EST"), format="%Y-%m-%d %H:%M:%OS3 %Z", tz = "EST") 

[1] "2018-01-09 15:43:44.844 EST"

请注意,使用参数%OS

以毫秒格式传递毫秒数