我知道linux有可用于prog的时间戳信息。 LANGS。这非常方便。
我正在开发一个程序,我需要将日期时间附加到创建的文件中。它应该是独一无二的。
后来我想解析文件,但我想解析最新的文件。
.net中是否存在类似* nix系统中的时间戳的选项?
那里有任何例子吗?
感谢。
答案 0 :(得分:2)
您可以使用Ticks结构的DateTime属性。它与UNIX时间戳不兼容,但它可用于返回表示日期和时间的long(Int64),精度为百万分之一秒。 E.g。
DateTime.Now.Ticks
在撰写本文时,我们会返回634074617762026300
您可以在构造函数中将ticks转换回DateTime。 E.g。
DateTime date = new DateTime(634074617762026300);
答案 1 :(得分:2)
如果您想要文件中的时间戳,请查看FileInfo
课程。如果要将UNIX时间戳添加到文件中(可能是文件名,或者如您所说,附加到末尾),此函数会为您提供UNIX时间戳:
public static int UnixTimestamp()
{
var utcEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
var utcNow = DateTime.UtcNow;
var span = utcNow - utcEpoch;
return (int)span.TotalSeconds;
}
答案 2 :(得分:2)
“唯一”和基于文件名的时间戳是相互矛盾的要求。当机器变得更快时它会崩溃。当程序的一个实例运行更多时,尝试检查文件是否已存在的变通办法就会崩溃。只有Path.GetTempFileName()可以保证完全唯一的名称。使用FileInfo.CreationTimeUtc查找最后一个。