Windows上的时间戳类似于Unix时间戳和文件操作

时间:2010-04-21 14:47:54

标签: c# .net file datetime timestamp

我知道linux有可用于prog的时间戳信息。 LANGS。这非常方便。

我正在开发一个程序,我需要将日期时间附加到创建的文件中。它应该是独一无二的。

后来我想解析文件,但我想解析最新的文件。

.net中是否存在类似* nix系统中的时间戳的选项?

那里有任何例子吗?

感谢。

3 个答案:

答案 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查找最后一个。