关于C#时间格式化中的“f”

示例:

DateTime.Now.ToString("yyyyMMddHHmmssfff")

上面的示例就是将日期格式化到毫秒级。那么问题来了,格式化到微秒级、纳秒级怎么整?f又是什么?

我们知道y->year, M->month,d->day,H->hour,m->minute,s->second,f->???

f是什么?f应该是float的缩写,意为小数精确度。(个人观点,请勿被引导!)

那么fff就是千分之一秒(即1毫秒),一个f就是十分之一秒(即100毫秒)了,以此类推。

那如果要格式化到纳秒级,是不是需要9个f?

真实的事情是无法格式化到纳秒级。最大精确度为7位(即最多7个f),也就是100纳秒(ns)。

但为什么非得到100纳秒级呢?这里我可不可以说王八的屁股—>龟腚(规定)呢O(∩_∩)O~

不过由此我想到了在C#中日期运算的最小单位是什么?刻度(Ticts/Timespan)。

而1刻度(Ticts/Timespan)就等于100纳秒,所以是不是可以说日期格式化的最小级别是刻度级。

在说说刻度(Ticts/Timespan)。刻度可以说在C#日期运算中是最基础的单位。

比如;EndDatetime - BeginDatetime=刻度值差(TimeSpan对象)

再根据得出的刻度值差得到天数差,月数差等。

自然关于日期的比较亦是基于刻度的比较。

原文地址:https://www.cnblogs.com/njl041x/p/4226134.html