2010-03-14 77 views
10

我想將8位數字值轉換爲DateTime對象。我怎樣才能做到這一點?例如,如果用戶輸入08082010,則應使用C#將其轉換爲08/08/2010。將8位數字轉換爲DateTime類型

+3

我最喜歡的這個問題是利用8月8日的這掩蓋了事實,這是不明確的,我們是否意味着MM/DD/YYYY對DD/MM/YYYY – 2014-11-26 14:15:26

回答

11
CultureInfo provider = CultureInfo.InvariantCulture; 
string dateString = "08082010"; 
string format = "MMddyyyy"; 
DateTime result = DateTime.ParseExact(dateString, format, provider); 

這將工作。

+0

提供者呢? – 2010-03-14 06:52:52

+0

添加了CultureInfo ... – Jason 2010-03-14 07:29:01

0
+0

我已經嘗試了所有的像DateTime的Parse和TryParse方法,但它不適用於我,這就是爲什麼我要問這裏的問題。 – 2010-03-14 06:48:29

+0

這是行不通的,因爲「08082010」不是DateTime.Parse的可接受日期格式。使用** DateTime.ParseExact **或** DateTime.TryParseExact **(取決於您的需要)。 – ScottK 2013-01-30 21:16:54

6

使用DateTime.ParseExact()"ddMMyyyy""MMddyyyy"格式說明。

5

我只是想做同樣的事情,我不得不同意伊格納西奧的方法。被接受的答案有效,但ParseExact方法在日期字符串無效的情況下拋出異常,而TryParseExact方法將僅返回false。例如:

using System.Globalization; 
// ... 
string dateString = "12212010"; 
string format = "MMddyyyy"; 
DateTime dateStarted; 
if (!DateTime.TryParseExact(dateString, format, null, DateTimeStyles.None, out dateStarted)) 
    dateStarted = DateTime.Now; 
相關問題