6

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

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

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

    输出 - 2011 年 7 月 27 日下午 3:05:31

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

    输出 - 2011 年 7 月 27 日下午 3:05:31

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

输出 - 03.05.32.000000

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

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

有人可以帮助我吗?

提前致谢。苏杰

4

3 回答 3

8

不确定为什么要从 DateTime -> string -> DateTime 这应该显示毫秒

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

如果您没有查看这些行以获取更多信息,请编辑帖子

于 2011-07-27T09:51:40.843 回答
6

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

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

String dateTimeStr = DateTime.Now.ToString("hh.mm.ss.ffffff", "en-US");
于 2011-07-27T09:57:39.197 回答
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"));
于 2011-07-27T09:53:31.070 回答