使用Node的fs.stat进行纳秒分辨率的mtime / ctime / atime

时间:2014-03-12 16:09:54

标签: node.js time stat

节点fs.stat返回的时间似乎只有一秒钟的分辨率,即使在支持纳秒级分辨率的文件系统上,如ext4。

var fs = require('fs')
var stats = fs.statSync('.')
stats.mtime.getMilliseconds() // => always 0

如何获得更好分辨率的统计时间?纳秒是理想的,但毫秒或微秒也可以。

2 个答案:

答案 0 :(得分:2)

解决方案是升级Node。从Node 0.11.0(#328451f128d)开始,我们得到毫秒分辨率的时间:

var fs = require('fs')
var stats = fs.statSync('.')
stats.mtime.getMilliseconds() // => 367

我仍然不确定是否有办法获得纳秒,但是获得毫秒是一个很大的进步。

答案 1 :(得分:1)

从节点v8.10开始,毫秒和纳秒级的解析时间可以作为单独的属性使用:

 stats.mtimeMs
 stats.ctimeMs
 stats.atimeMs

stats.mtime.getMillieseconds() //546
stats.mtimeMs // 1391354639546.3066