将传递的字符串值(不带日期格式)转换为DateTime

时间:2015-07-31 10:11:12

标签: c# datetime

有没有办法将31072015(这可以是没有格式的字符串中传递的任何日期)转换为日期时间,这是今天的日期31/07/2015。

我尝试过Convert.ToDateTime方法,DateTime.Parse抛出"String was not recognized as a valid DateTime."例外。

我理解,这意味着我需要以某种格式传递字符串,例如31/07/2015。但传入的字符串值不能采用指定的格式。

我考虑过分割字符串并添加" /"进入它,但我不知道如何去做。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

使用DateTime.ParseExact

例如

DateTime.ParseExact(someDateString, "ddMMyyyy", CultureInfo.InvariantCulture)

https://msdn.microsoft.com/en-us/library/w2sa9yss(v=vs.110).aspx

答案 1 :(得分:0)

您可以使用DateTime.TryParseExact

var date = "31072015";
DateTime dateValue;
if ((DateTime.TryParseExact(date, "ddMMyyyy", CultureInfo.InvariantCulture,
                    DateTimeStyles.None, out dateValue)))
{

}

答案 2 :(得分:0)

尝试这个常用功能

常用方法:

public static DateTime ToDateTime(this object Value,string Format)
        {
            DateTime dateTime;            
            DateTime.TryParseExact(Value.ToString(), Format, null, DateTimeStyles.None, out dateTime);
            return dateTime;
        }

Sample:

int Intdates = 31072015;
DateTime Date = Intdates.ToDateTime("DDMMyyyy")