将8位数转换为DateTime类型

Asi*_*jad 10 c#

我想将8位数值转换为DateTime对象.我怎样才能做到这一点?例如,如果用户输入08082010,则应使用C#将其转换为08/08/2010.

Jas*_*son 14

CultureInfo provider = CultureInfo.InvariantCulture;
string dateString = "08082010";
string format = "MMddyyyy";
DateTime result = DateTime.ParseExact(dateString, format, provider);
Run Code Online (Sandbox Code Playgroud)

这会奏效.


Ign*_*ams 6

使用DateTime.ParseExact()格式说明符"ddMMyyyy"或"MMddyyyy".


are*_*ing 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;
Run Code Online (Sandbox Code Playgroud)