是的,返回的内容可以使用HH格式化,以便在24小时内显示值,
但有没有办法让它成为默认的返回值。?
答案 0 :(得分:3)
不要使用Cultures,而是制作扩展方法:
public static class Extensions
{
public static string To24HourTime(this DateTime dateTime)
{
return dateTime.ToString("HH:mm:ss");
}
}
您可以使用以下方法:
DateTime.Now.To24HourTime();
答案 1 :(得分:2)
内部表示无关紧要。如果您要返回DateTime
,则会为DateTime
。
如果要格式化 display 的DateTime
,则需要使用格式字符串以任何您想要的格式显示它。
请参阅MSDN了解不同的custom datatime format strings。
DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01 PM
Console.WriteLine(date1.ToString("HH:mm:ss",
CultureInfo.InvariantCulture));
// Displays 18:09:01
hh
格式说明符将返回12小时的小时。tt
格式说明符将返回AM / PM指示符。HH
格式说明符将返回24小时制。正如其他人所指出的,您可以将线程文化更改为默认使用24小时的文化,但这也会影响数字格式(例如,十进制和千位分隔符)。
答案 2 :(得分:1)
将当前线程上的CultureInfo更改为默认情况下为24小时的Culture。
//In Sweden we use 24hrs format.
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("sv-se");
修改:您还可以更改当前文化信息的时间格式。
Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongTimePattern = "HH:mm:ss";
Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortTimePattern = "HH:mm";
//DateTime.ToString() will output something like (en-us culture) 8/21/2010 10:11:37
答案 3 :(得分:0)
这取决于程序运行的文化。检查System.Threading.Thread.CurrentThread.CurrentCulture和CurrentUICulture属性并相应地设置它们。
CultureInfo类型,以及其他方式,告诉我们如何格式化数字和日期。 DateTimeFormat属性是您感兴趣的属性。如果您需要专门的文化,您可以创建一个并将其DateTimeFormat设置为您需要的任何内容,然后将其分配给CurrentCulture属性。
很可能您只想选择预定义的文化。在此处阅读更多内容:http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.aspx