如何格式化具有毫秒精度和左边距填充的日期时间?

时间:2018-06-01 16:20:26

标签: .net datetime string-formatting

对于API调用,我需要将DateTime表示为包含毫秒的字符串,但格式似乎不受DateTime.ToString支持。

具体来说,我需要捕获日期,包括毫秒的3位十进制数字(即毫秒但没有微秒),并将左边填充的零发送到4位。因此,如果实际的毫秒为123,我需要发送0123。 (我知道毫秒总是<1000,所以一个人永远不需要4个位置,但我没有设计并且无法控制这个API。)

我想做一件简单的事情,并使用像yyyyMMddHHmmssffff这样的格式,但似乎这显示了毫秒到4位精度,而不是左边填充的三位数。

我知道我可以将日期分为秒和亚秒分辨率,单独格式化并连接,但这看起来很笨拙。

是否有内置格式字符串可以满足我的需求?

2 个答案:

答案 0 :(得分:2)

由于这是一种极具误导性且易于用户错误的表达日期的方式,因为&#34; 0123&#34;将被解释为12.3毫秒,我会说不,除了&#34; klunky&#34;之外没有办法做到这一点。你提到的方式。

答案 1 :(得分:1)

既然你想让0永远为0,不管是什么,不需要让它变得动态,你只需将它添加为char:

yyyyMMddHHmmss0fff