我正在编程一个带有传感器的模拟器,这些传感器以非常高的速度返回一个值。由于正在进行大量的日志记录,因此让我的阵容正确非常重要。为了做到这一点,我试图让计时器排队。然而,这形成了一个问题。当返回毫秒时,它经常返回.01 .1甚至毫秒。这是轻微的抛弃阵容。知道如何强制它返回例如.000?
基本上我正试图做到这一点:
[DEBUG]|18:48:39.449| Sonar 10d | Sonar1 40d | 7.684386
[DEBUG]|18:48:39.45| Sonar 10d | Sonar1 10d | 27.54916
[DEBUG]|18:48:39.5| Sonar 10d | Sonar1 20d | 14.52461
[DEBUG]|18:48:39| Sonar 10d | Sonar1 30d | 9.878839
看起来更像是这样:
[DEBUG]|18:48:39.449| Sonar 10d | Sonar1 40d | 7.684386
[DEBUG]|18:48:39.450| Sonar 10d | Sonar1 10d | 27.54916
[DEBUG]|18:48:39.500| Sonar 10d | Sonar1 20d | 14.52461
[DEBUG]|18:48:39.000| Sonar 10d | Sonar1 30d | 9.878839
不使用像我现在这样的太多代码。
当前代码:
DateTime time = DateTime.Now;
time.ToString("HH:mm:ss.FFF");
然后添加太多代码。 0和...
答案 0 :(得分:5)
使用fff
代替FFF
time.ToString("HH:mm:ss.fff");
实施例
var now = new DateTime(2017,10,18,12,16,16, 10);
Console.WriteLine("What you want {0:HH:mm:ss.fff}", now);
Console.WriteLine("WHat you have {0:HH:mm:ss.FFF}", now);
生成输出
What you want 12:16:16.010
WHat you have 12:16:16.01
有关更多格式字符串选项,请参阅Custom Date and Time Format Strings
答案 1 :(得分:0)
您可以尝试如下所示的行(请注意小写f
)
time.ToString("HH:mm:ss.fff");
您可以使用以下代码
进行测试var s = DateTime.ParseExact("20170810 18:20:13", "yyyyMMdd HH:mm:ss", null).ToString("HH:mm:ss.fff");
这应该打印以下输出
18:20:13.000