2010-03-14 75 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; 
相关问题