node.js - 如何使用 fs 模块获取文件创建日期?

标签 node.js linux fs

我有 linux 服务器,其中有使用 winston rotation 创建的日志文件,所以 filename 有文件名和创建日期,所以你可以在 data 中看到第一个文件server20170414181405.log 创建于 2017-04-14 但使用 fs.stats.birthtime 它给出的文件日期 Apr-19-2017。如何在 Linux 上获得准确的文件创建日期?

定时任务

fs.stat(filePath, function (err, stats) {
  if (err) return cb2(err);
   var fileInfo = { fileDate: stats.birthtime, filename: file };
    console.log(fileInfo);
});

数据

  { fileDate: Wed Apr 19 2017 00:51:56 GMT-0400 (EDT),
    filename: 'server20170414181405.log' },
  { fileDate: Wed Apr 19 2017 00:52:04 GMT-0400 (EDT),
    filename: 'server20170414212655.log' },
  { fileDate: Wed Apr 19 2017 00:52:07 GMT-0400 (EDT),
    filename: 'server20170415023845.log' },

最佳答案

stat.birthtime 是服务器时区中文件创建的真实日期。可能会出现差异,因为 Winston 和您的服务器在不同的时区工作。

如果不是对齐两个时区的情况,并且您需要某个特定时区的 stat.birthtime,则可以使用 moment-timezone日期构造函数。

关于node.js - 如何使用 fs 模块获取文件创建日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43592299/

相关文章:

javascript - 如何在 Nodejs 中将用户的电话号码设置为密码恢复选项

linux - 如何在 linux 系统上获取可在 .Xresources 配置中使用的有效字体名称?

linux - 编译 libsmtp 时出错(找不到 glib-config)

javascript - 从 Nodejs 流中删除或更改原始数据

node.js - 异步和递归目录扫描,用于 Nodejs 和 Expressjs 中的文件列表

javascript - 通过额外数据扩展 promise

javascript - 在不重新加载页面的情况下从 Node/Express 向浏览器发送确认警报

node.js - Apache 不会将请求转发到 Nodejs 后端服务器

arrays - 在 bash 中对日期数组进行排序

javascript - 如何使用 Node fs 将代码片段附加到 HTML