将日期时间转换为C#中显示的毫秒数

时间:2011-07-27 09:46:30

标签: c# winforms datetime formats

我想显示毫秒,但ToString将毫秒显示为00000。

我提供下面的代码,每一步都有输出。

  1. String currentDateTime = DateTime.Now.ToString("G");

    输出 - 7/27/2011 3:05:31 PM

  2. System.DateTime dateTime = System.DateTime.Parse(currentDateTime);

    输出 - 7/27/2011 3:05:31 PM

  3. String dateTimeStr = dateTime.ToString("hh.mm.ss.ffffff", "en-US");

  4. 输出 - 03.05.32.000000

    我想用毫秒显示输出,例如03.05.32.33456

    如果我使用ParseExact而不是Parse,我会遇到异常。我知道我可以使用TryParseExact,但该解决方案可能不合适,因为我需要一个通用的解决方案来解决这个问题。

    有人可以帮助我。

    提前致谢。 Sujay

3 个答案:

答案 0 :(得分:5)

不确定为什么要从DateTime移动 - > string - >约会时间 这应该显示毫秒

DateTime dt = DateTime.Now;
dt.ToString("hh:mm:ss.fff") 

如果您没有在这些行上查找其他信息,请编辑帖子

答案 1 :(得分:4)

通过使用先前从字符串构建的相同dateTime对象(“7/27/2011 3:05:31 PM”,没有任何毫秒),您将丢失毫秒。

如果您要将Now转换为字符串,则不会丢失毫秒:

String dateTimeStr = DateTime.Now.ToString("hh.mm.ss.ffffff", "en-US");

答案 2 :(得分:3)

在您的代码中,您首先使用标准的“G”格式将DateTime序列化为字符串,该格式没有毫秒数。所以肯定的是,当你解析这个字符串后,你得到000000:

        String currentDateTime = DateTime.Now.ToString("G");
        Console.WriteLine(currentDateTime);

        System.DateTime dateTime = System.DateTime.Parse(currentDateTime);

        Console.WriteLine(dateTime.ToString("hh.mm.ss.ffffff"));