【发布时间】:2012-08-09 18:11:26
【问题描述】:
我遇到了问题。如何正确显示我的日期文本?
使用DateTime.Now 我能够收到计算机时钟当前设置的日期和时间,但是,当我尝试解析为字符串格式时,它还显示日期如下:12-04-2012 12: 38 但是我只是想获取时间字符串,比如 12:38 吗?
到目前为止我尝试的是Console.WriteLine(DateTime.Now.ToString("00:00:00"));
但它不起作用=/
【问题讨论】:
我遇到了问题。如何正确显示我的日期文本?
使用DateTime.Now 我能够收到计算机时钟当前设置的日期和时间,但是,当我尝试解析为字符串格式时,它还显示日期如下:12-04-2012 12: 38 但是我只是想获取时间字符串,比如 12:38 吗?
到目前为止我尝试的是Console.WriteLine(DateTime.Now.ToString("00:00:00"));
但它不起作用=/
【问题讨论】:
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")。
ToShortTimeString 也是所有文化敏感的。
"HH.mm" 或 @"HH\:mm" 这样的字符串对文化不敏感,有时你想要这样。但是,如果有疑问,请将 InvariantCulture 与您的自定义格式字符串一起用作格式提供程序。
一个解决很多问题的方法是阅读文档: http://msdn.microsoft.com/en-us/library/zdtaw1bw%28v=vs.80%29.aspx
使用格式“t”似乎可以做你想做的事
【讨论】:
对于使用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
就用这个吧:
DateTime.Now.ToString("hh:mm");
或
DateTime.Now.ToShortTimeString();
【讨论】:
"hh" 是 12 小时系统小时数,例如14:08 将打印为02(表示下午 2 点)。
尝试像这样格式化:
Console.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
或
Console.WriteLine(DateTime.Now.ToString("hh:mm"));
但我最喜欢的是
Console.WriteLine(DateTime.Now.ToShortTimeString());
【讨论】:
你可以试试:
var dt = DateTime.Now.TimeOfDay; dt.ToString().Substring(0, 5);
【讨论】: