[英]String to date parsing error “String was not recognized as a valid DateTime.”
在下面的属性中,我将字符串解析为datetime。
public virtual string StartTimeLocal
{
set { StartTime = DateTime.Parse(value).ToUTCDateTime(); }
}
刚刚检查过的值我有26/1/2014 02:17 PM
您能帮我做错什么以及如何纠正吗?
DateTime.Parse
解析标准日期和时间格式 。
您的字符串不是其中之一。
您可以改用DateTime.TryParseExact
或DateTime.ParseExact
方法。
string s = "26/1/2014 02:17 PM";
DateTime dt;
if(DateTime.TryParseExact(s, "dd/M/yyyy hh:mm tt",
CultureInfo.GetCultureInfo("en-US"),
DateTimeStyles.None, out dt))
{
Console.WriteLine(dt);
}
else
{
//Your string is not a valid DateTime.
}
您的输入使用en-US文化设置来格式化,因此您应确保您的应用程序在本地文化设置为en-US的系统上运行,或明确指定文化:
public virtual string StartTimeLocal
{
set { StartTime = DateTime.Parse(value, CultureInfo.GetCultureInfo("en-US")).ToUTCDateTime(); }
}
请尝试以下方法:
CultureInfo provider = CultureInfo.InvariantCulture;
format = "dd/MM/yyyy hh:mm tt";
result = DateTime.ParseExact(dateString, format, provider);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.