字符串无效作为日期时间字符串 - 将“yyyyMMdd”转换为datetime

时间:2013-07-01 13:01:22

标签: c# datetime

我的格式为“yyyyMMdd”。 我想将它们转换为具有格式的DateTime,但是我得到一个错误,指出字符串无效作为DateTime字符串。 我怎么能这样做?

5 个答案:

答案 0 :(得分:5)

使用DateTime.ParseExact指定格式和不变文化:

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

答案 1 :(得分:4)

尝试DateTime.TryParseExact

DateTime dt;

DateTime.TryParseExact(textBox.Text, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt);

答案 2 :(得分:4)

使用DateTime.ParseExact

string dateString = "20130701";
DateTime dt = DateTime.ParseExact(dateString, "yyyyMMdd", null, DateTimeStyles.None);

答案 3 :(得分:0)

之前已经提出并回答了这个问题。但这是一个工作代码的例子:

string DateString = "20130701";
DateTime DT = DateTime.ParseExact(DateString, "yyyyMMdd", CultureInfo.InvariantCulture);

其中CultureInfo.InvariantCulture是System.Globalization命名空间的一部分。 http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.71).aspx

答案 4 :(得分:-2)

将它们分解为DateTime.Parse将接受为有效的格式。您甚至可以使用正则表达式来解析信息

Regex format = new Regex("(?<year>^[0-9]{4})(?<month>[0-9]{2})(?<day>[0-9]{2})");
Match m = format.Match(inputString);
int year = int.Parse(m.Groups["year"].Value;
int month = int.Parse(m.Groups["month"].Value;
int day = int.Parse(m.Groups["day"].Value;
DateTime date = new DateTime(year, month, day);