2011-03-02 71 views
1

的一個普遍問題:ASP.Net日期時間與CultureInfo的

是否DateTime對象存儲的CultureInfo的,或者您需要使用格式化根據當前區域性格式化日期時間?

我有一個類屬性,可以重新調用DateTime。在該屬性中,我使用CultureInfo對象將當前文化信息設置爲DateTime對象。下面是類屬性的代碼我使用:

public DateTime PrintedQuoteDate { 
    get { 
     DateTime printQuoteDate = DateTime.Today; 
     // cInfo = CultureInfo object        

     return Convert.ToDateTime(printQuoteDate , cInfo); 

    } 
} 

所以我的問題是,當我將使用上述財產在我的代碼,將它有我在它的get方法我設置corrosponding文化信息,或我將不得不使用相同的CONVERT代碼格式化日期時間。這裏的限制是該屬性應該只返回DateTime類型。

任何想法,建議

回答

1

DateTime不存儲任何文化都沒有。事實上,它甚至沒有提及時區,只知道它是否是UTC DateTime。這由內部枚舉來處理。

使用DateTime的ToString方法時,您需要指定格式提供程序(每種文化本身都是格式提供程序),否則它將使用當前線程的文化(實際上是文化而不是UI文化) 。

您可以通過使用這樣的ISO國家/區域代碼得到predifined文化:

var us = new CultureInfo("en-US"); 
var british = new CultureInfo("en-GB"); 
var danish = new CultureInfo("da"); 

正如你可以看到丹麥這是不夠,因爲沒有其他語言環境指定的語言(我知識)。

+0

備註:即使您沒有提供區域信息,「en」或「fr」也能正常工作,但有某種後備機制。 – Guillaume86 2011-03-02 13:31:02

+0

是真實的,但它們在格式化日期時間時丟失了至關重要的信息,例如相應的日期格式:美國是MM/DD/YY,而英國是DD/MM/YY,**強烈建議不要在格式化日期時使用後退* *,所有你得到的是翻譯的日期名稱和縮寫,如果你不顯示日期名稱,那麼通用文化信息實際上對你沒有任何作用。 – ntziolis 2011-03-02 13:37:30

+0

我很好奇,如果這可以與日期一起存儲。無論如何,感謝您的答覆。 – user458135 2011-03-02 15:22:09