2011-07-14 43 views
3

我有一個字符串,其中包含yyyyMMdd格式的日期。我想將該日期轉換爲 系統日期格式,使用ConvertTo.DateTime()方法或任何其他簡單的方法。如何將日期從yyyyMMdd格式轉換爲使用DateTime.TryParse的mm-dd-yyyy格式

我用:

string time = "19851231"; 
DateTime theTime= DateTime.ParseExact(time, 
            Culture, DateTimeStyles.None, out resultDt); 

它不返回任何東西,其實我很煩惱的文化信息。我不知道它存在於哪種文化中。

回答

0
string format = "yyyyMMdd"; 
DateTime date = DateTime.ParseExact(input, format, 
        CultureInfo.CurrentCulture, DateTimeStyles.None); 

或多種日期格式:

string[] formats = {"yyyyMMdd", "dd/MM/yyyy"}; 
DateTime date = DateTime.ParseExact(input, formats, 
        CultureInfo.CurrentCulture, DateTimeStyles.None); 
+0

爲什麼不直接使用正確的過載? –

+0

嗨同行 感謝您對此的發起。 我需要這種日期格式的文化本地ID。我在運行時獲取日期值。 作爲 串時間= 「運行時間值」; 20110714 日期時間theTime = DateTime.ParseExact(時間, 文化,DateTimeStyles.None,出resultDt); 對於上述給定的代碼我已經使用不同的日期字符串文化,如dd/mm/yyyy但是在另一種情況下,它以yyyyMMdd格式。因此,我對這種類型的日期格式的文化信息很感興趣。 尋求與您的更新:) 問候 薩欽卡利亞 –

+0

前頁你應該看看:http://msdn.microsoft.com/en-us/library/az4se3k1.aspx,你在Web或應用場景?如果你問用戶的日期,最好使用DateTime控件而不是TextBox。 – Peter

5

你幾乎應該被指定CultureInfo.InvariantCulture - 而此刻的代碼看起來並不像它會編譯在所有...它看起來像你正在嘗試做的ParseExactTryParseExact的混合,而你沒有指定格式字符串...

嘗試:

DateTime date = DateTime.ParseExact(time, "yyyyMMdd", 
            CultureInfo.InvariantCulture); 

或者,如果你想使用TryParseExact

DateTime date; 
bool success = DateTime.TryParseExact(time, "yyyyMMdd", 
             CultureInfo.InvariantCulture, 
             DateTimeStyles.None, 
             out date); 
2

只要使用此:

DateTime theTime = DateTime.ParseExact(time, "yyyyMMdd", 
             CultureInfo.InvariantCulture); 
相關問題