2008-11-24 32 views
1

我正在使用自定義模式來格式化日期時間的應用程序的本地化。使用自定義模式對日期時間進行本地化

一個例子是: DD-MM HH:MM

我需要的日期這個自定義格式的本地化版本,讓我得到使用數字時間日期,和,基本上都採用當地秩序(dd MM或MM dd)以及日期和時間的本地分隔符。

這是相當平凡的,只要我使用默認的格式,但只要我偏離這些,格式化變得硬編碼。

任何想法?

謝謝,喬納斯

編輯: 我有CultureInfo的對象,問題是,當我做一則DateTime.ToString(「ES-ES」),我得到太多的信息 - 我只需要一個月+一天,但與默認的ToString,我得到年+日+天

再次編輯: 我看我如何可以更改我使用的每個CultureInfo對象的ShortDate模式。不過,在某些情況下,我還需要使用默認的ShortDate模式,所以如果改變這種模式,不幸的是,我會遇到另一個同樣的問題。

最終編輯:萬一有人在乎。我從來沒有找到一個解決方案,所以我最終編寫了一個靜態函數來檢查當前的CultureInfo,並返回格式正確的日期,一年。

+0

我有文化信息對象,問題是當我做一個DateTime.ToString(「ES-es」),我得到太多的信息 - 我只需要一個月+天,但與默認的ToString,我得到一年+月+日。 – Joda 2008-11-24 10:14:12

回答

4

看看DateTimeFormatInfo類(CultureInfo.DateTimeFormat屬性),特別是DateSeparator,TimeSeparator,ShortDatePattern屬性。

-1

CultureInfo班將是一個開始尋找的好地方。

2

也許你可以試試這個:

DateTime.Now.ToString(new System.Globalization.CultureInfo(Thread.CurrentThread.CurrentCulture.Name)); 

如果我想例如可以顯示一個特定的文化的時候,我會做到這一點:

DateTime.Now.ToString(new System.Globalization.CultureInfo("ES-es")) 

CultureInfo的充當的IFormatProvider。

+0

DateTime.Now.ToString(「dd-MMM-yy」,新的System.Globalization.CultureInfo(「es-CO」)) - 這是一個包含格式的例子。 – daniloquio 2012-02-08 16:40:59