c#中的datetime如何将默认返回值更改为24小时?

时间:2010-08-21 08:01:30

标签: c# datetime

是的,返回的内容可以使用HH格式化,以便在24小时内显示值,

但有没有办法让它成为默认的返回值。?

4 个答案:

答案 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