📅  最后修改于: 2023-12-03 14:44:40.344000             🧑  作者: Mango
在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。