我的格式为“yyyyMMdd”。 我想将它们转换为具有格式的DateTime,但是我得到一个错误,指出字符串无效作为DateTime字符串。 我怎么能这样做?
答案 0 :(得分:5)
使用DateTime.ParseExact
指定格式和不变文化:
var date = DateTime.ParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture);
答案 1 :(得分:4)
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);