📜  Node.js stats.ctimeNs 属性(1)

📅  最后修改于: 2023-12-03 14:44:40.344000             🧑  作者: Mango

Node.js stats.ctimeNs 属性

在Node.js中,stats对象是fs.stat()方法返回的对象,该对象包含文件或目录的元数据信息。其中包括文件最后一次修改时间(mtime)、最后一次访问时间(atime)和创建时间(ctime)。其中,ctimeNs属性表示文件或目录的创建时间,以纳秒为单位。

const fs = require('fs');

fs.stat('./test.txt', (err, stats) => {
  if (err) throw err;

  console.log(stats.ctimeNs);
});

输出结果类似于:

1602934084000630400

可以将此时间戳转换为实际的日期时间:

const fs = require('fs');

fs.stat('./test.txt', (err, stats) => {
  if (err) throw err;

  console.log(new Date(stats.ctimeNs / 1000000).toLocaleString());
});

输出结果类似于:

2020/10/17 上午12:34:44

由于Node.js中的时间戳是以纳秒为单位的,我们需要将它除以1000000来得到毫秒级的时间戳,再使用Date对象的toLocaleString()方法将时间戳转换为日期时间字符串。

值得注意的是,stats.ctimeNs属性的精度高达纳秒级别,但不同操作系统的精度不同。在Windows上,该属性的精度为毫秒级别,而在Linux和macOS上,该属性的精度为纳秒级别。因此,在跨平台开发时,应该注意代码的可移植性。

此外,stats对象还包含其他有用的属性,例如文件大小(size)、文件类型(isFile())、目录类型(isDirectory())等。可以通过fs模块提供的多种API获取该对象,例如fs.stat()、fs.lstat()、fs.fstat()等。

更多关于stats对象的信息可以查看官方文档:https://nodejs.org/dist/latest-v14.x/docs/api/fs.html#fs_class_fs_stats