【问题标题】:DateTime.ToString()?日期时间.ToString()?
【发布时间】:2012-08-09 18:11:26
【问题描述】:

我遇到了问题。如何正确显示我的日期文本?

使用DateTime.Now 我能够收到计算机时钟当前设置的日期和时间,但是,当我尝试解析为字符串格式时,它还显示日期如下:12-04-2012 12: 38 但是我只是想获取时间字符串,比如 12:38 吗?

到目前为止我尝试的是Console.WriteLine(DateTime.Now.ToString("00:00:00"));

但它不起作用=/

【问题讨论】:

    标签: c# string parsing date


    【解决方案1】:

    DateTime 定义了一个ToShortTimeString 方法:

    DateTime.Now.ToShortTimeString()
    

    或者,您可以使用custom format string

    DateTime.Now.ToString("HH:mm")
    

    或者,将standard format string 用于short time format

    DateTime.Now.ToString("t")
    

    【讨论】:

    • 注意,如果你使用"HH:mm",冒号:将被“翻译”成当前线程文化的时间分隔符。就像该文化是“孟加拉语(印度)”(new CultureInfo("bn-IN"))一样,输出将变为14.26,因为该文化使用点作为时间分隔符。如果您不想这样,请转义您的冒号,如DateTime.Now.ToString(@"HH\:mm")
    • @JeppeStigNielsen - 标准格式字符串以及ToShortTimeString 也是所有文化敏感的。
    • 当然。但也许像 "HH.mm"@"HH\:mm" 这样的字符串对文化不敏感,有时你想要这样。但是,如果有疑问,请将 InvariantCulture 与您的自定义格式字符串一起用作格式提供程序。
    【解决方案2】:

    一个解决很多问题的方法是阅读文档: http://msdn.microsoft.com/en-us/library/zdtaw1bw%28v=vs.80%29.aspx

    使用格式“t”似乎可以做你想做的事

    【讨论】:

      【解决方案3】:

      对于使用DateTime.Now.ToString(),此链接非常有用并解释了所有模式:http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm

      模式如下:

      DateTime.Now.ToString("dddd, dd MMMM yyyy HH:mm:ss")
      

      2006 年 8 月 22 日,星期二 06:30:07

      DateTime.Now.ToString("ddd, dd MMM yyyy HH':'mm':'ss 'GMT'")
      

      格林威治标准时间 2006 年 8 月 22 日星期二 06:30:07

      DateTime.Now.ToString("MM/dd/yyyy")
      

      2006 年 8 月 22 日

      【讨论】:

      • 请注意,格式字符串中的 / 表示特定于文化的日期分隔符。 System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-US"); Console.WriteLine(DateTime.Now.ToString("MM/dd/yyyy")); System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("fi-FI"); Console.WriteLine(DateTime.Now.ToString("MM/dd/yyyy")); 08/22/2006 08.22.2006
      【解决方案4】:

      就用这个吧:

      DateTime.Now.ToString("hh:mm");
      

      DateTime.Now.ToShortTimeString();
      

      【讨论】:

      • 但请记住 "hh" 是 12 小时系统小时数,例如14:08 将打印为02(表示下午 2 点)。
      【解决方案5】:

      尝试像这样格式化:

      Console.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
      

      Console.WriteLine(DateTime.Now.ToString("hh:mm"));
      

      但我最喜欢的是

      Console.WriteLine(DateTime.Now.ToShortTimeString());
      

      【讨论】:

        【解决方案6】:

        你可以试试:

        var dt = DateTime.Now.TimeOfDay; dt.ToString().Substring(0, 5);

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-09-19
          • 1970-01-01
          • 2010-12-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多