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

本文关键字:字符串 时间 日期 yyyyMMdd 无效 -转换 | 更新日期: 2023-09-27 18:20:38

我有"yyyyMMdd"格式的字符串。我想用格式将它们转换为DateTime,但我收到一个错误,说该字符串作为DateTime字符串无效。我该怎么做?

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

使用DateTime.ParseExact指定格式和不变区域性:

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

尝试DateTime.TryParseExact

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

使用DateTime.ParseExact:

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

这个问题以前有人问过并回答过。但这里有一个工作代码的例子:

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

将它们分解为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);