2009-11-20 158 views
0

我有格式爲「08/1999」的日期字符串我想獲取相應月份的第一個日期。例如:在這種情況下08/01/1999。 en-Us文化很簡單。我打破字符串,在字符串中追加「01」以獲得08/01/1999,然後是DateTime.Parse(日期字符串),但這僅適用於en-US文化。從「mm/yyyy」格式獲取日期時間對象日期字符串

我怎樣才能做到這一點不同的文化?

我的日期字符串將始終爲mm/yyyy格式。我試圖從這個dateString獲取一個DataTime obj。

+1

這是一個C#的問題嗎?如果是這樣,請在您的代碼中指定此代碼,您將更快地獲得合適的人員。也許。 – 2009-11-20 20:51:35

+0

你是否還有另一種文化?不知道您正在使用哪種類型的應用程序語言,但可以根據server \ pc上的設置轉換日期和時間。 – 2009-11-20 20:52:09

+0

這是C#的問題。 – ssal 2009-11-20 20:54:23

回答

7

使用ParseExact方法。注意上套管M是幾個月,下套管是幾分鐘。

string dateToConvert = "08/1999"; 
string format = "MM/yyyy"; 
CultureInfo provider = CultureInfo.InvariantCulture; 

DateTime result = DateTime.ParseExact(dateToConvert, format, provider); 

輸出:

{1999-08-01 00:00:00} 

您還可以使用Convert.ToDateTime和分析方法。它會產生相同的結果,但在implicite方式:

DateTime result = Convert.ToDateTime(dateToConvert, provider); // Output: {1999-08-01 00:00:00} 
DateTime result = DateTime.Parse(dateToConvert, provider); // Output: {1999-08-01 00:00:00} 

更多詳情:

3

我打破字符串,追加「01」字符串中獲得1999年8月1日,然後DateTime.Parse(datestring)

這是一個非常囉嗦的方式做到這一點。只要這將工作:

DateTime.Parse("08/1999")

如何爲不同的文化做到這一點?

如果你的字符串始終以這種格式,這樣做:

DateTime.Parse("08/1999", CultureInfo.InvariantCulture)

3

我不知道如果我正確地理解你的問題,但你可以嘗試通過CultureInfo.InvariantCulture如果要強制美國日期格式不管客戶端計算機的區域設置如何:

DateTime.Parse("08/1999", System.Globalization.CultureInfo.InvariantCulture)