【发布时间】:2011-06-01 01:08:21
【问题描述】:
在我的应用程序中,我随机生成文件。为了确保命名的唯一性,我从 1.1.1970 开始尝试使用纳秒:
long time = DateTime.Now.Ticks;
String fileName = Convert.ToString(time);
Console.WriteLine(fileName);
现在我观察到一些奇怪的事情。为什么输出是这样的?我的意思是为什么最后4个数字总是一样的?我可以将其用作文件名,这不是问题,但我只是想知道它。
634292263478068039
634292263512888039
634292263541368039
634292263603448039
634292263680078039
【问题讨论】:
-
Ticks不是自1.1.1970以来的纳秒,您可能对 JavaScriptgetTime()方法感到困惑。取自 msdn 官网:该属性的值表示自 0001 年 1 月 1 日午夜 12:00:00 以来经过的 100 纳秒间隔数 (msdn.microsoft.com/en-us/library/system.datetime.ticks.aspx) -
准确地说,滴答声不是纳秒,滴答声旨在表示 100 纳秒。
-
一个滴答表示一百纳秒或百万分之一秒。一毫秒有 10,000 个滴答声,或每秒有 1000 万个滴答声。 MSDN