如何使用毫秒精度和左填充来格式化日期时间?
How can I format a date time with millisecond precision AND left padding?
对于 API 调用,我需要将 DateTime 表示为包含毫秒的字符串,但格式似乎不受 DateTime.ToString
支持。
具体来说,我需要捕获日期,包括毫秒的 3 个小数位(即毫秒但没有微秒),并将用零填充的左侧发送到 4 位。所以如果实际的毫秒数是123
,我需要发送0123
。 (我知道毫秒总是 <1000,所以一个人永远不需要 4 个地方,但我没有设计也无法控制这个 API。)
我想做一些简单的事情并使用像 yyyyMMddHHmmssffff
这样的格式,但它似乎显示毫秒到 4 位精度,而不是左填充的三位数字。
我知道我可以将日期分成秒级和亚秒级分辨率,分别格式化它们,然后连接起来,但这看起来很笨拙。
是否有满足我需要的内置格式字符串?
鉴于“0123”将被解释为 12.3 毫秒,因为这是一种极具误导性和用户容易出错的日期表示方式,我会说不,除了 "klunky" 你提到的方式。
由于您希望 0 无论如何始终为 0,因此无需使其动态化,您只需将其添加为字符即可:
yyyyMMddHHmmss0fff
对于 API 调用,我需要将 DateTime 表示为包含毫秒的字符串,但格式似乎不受 DateTime.ToString
支持。
具体来说,我需要捕获日期,包括毫秒的 3 个小数位(即毫秒但没有微秒),并将用零填充的左侧发送到 4 位。所以如果实际的毫秒数是123
,我需要发送0123
。 (我知道毫秒总是 <1000,所以一个人永远不需要 4 个地方,但我没有设计也无法控制这个 API。)
我想做一些简单的事情并使用像 yyyyMMddHHmmssffff
这样的格式,但它似乎显示毫秒到 4 位精度,而不是左填充的三位数字。
我知道我可以将日期分成秒级和亚秒级分辨率,分别格式化它们,然后连接起来,但这看起来很笨拙。
是否有满足我需要的内置格式字符串?
鉴于“0123”将被解释为 12.3 毫秒,因为这是一种极具误导性和用户容易出错的日期表示方式,我会说不,除了 "klunky" 你提到的方式。
由于您希望 0 无论如何始终为 0,因此无需使其动态化,您只需将其添加为字符即可:
yyyyMMddHHmmss0fff