2010-08-21 75 views

回答

0

這取決於您的程序在哪種文化上運行。檢查System.Threading.Thread.CurrentThread.CurrentCulture和CurrentUICulture屬性並相應地設置它們。

CultureInfo類型,除其他外,告訴如何格式化數字和日期。 DateTimeFormat屬性就是你感興趣的東西。如果你需要一種專門的文化,你可以創建一個,並將其DateTimeFormat設置爲你需要的任何東西,然後把它分配給CurrentCulture屬性。

很可能你只是想選擇一個預先定義的文化。在此處閱讀更多信息:http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.aspx

2

內部表示形式不相關。如果您要退回DateTime,那將是DateTime

如果要將DateTime的格式設置爲顯示,則需要使用格式字符串以任意格式顯示它。

有關不同的custom datatime format strings,請參閱MSDN。

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小時的文化,但這也會影響數字格式(例如,小數和千分號)。

+0

不知道你可以使用日期時間爲收音機(猜你是上午/下午而不是上午/下午)。就像你指向內部 – 2010-08-21 08:14:58

+0

@Rune FS - 很好的地方...我不得不讀你的評論3次,我才明白你在說什麼:) – Oded 2010-08-21 08:19:05

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

,而不是與文化打,使擴展方法:

public static class Extensions 
{ 
    public static string To24HourTime(this DateTime dateTime) 
    { 
     return dateTime.ToString("HH:mm:ss"); 
    } 
} 

您可以使用方法,然後如下:

DateTime.Now.To24HourTime(); 
+0

整潔:)。 。 。 。 。 – user287745 2010-08-21 08:44:17

相關問題