繁体   English   中英

DateTime.ParseExact字符串未被识别为有效的日期时间

[英]DateTime.ParseExact String not recognized as valid datetime

在花了很长时间尝试各种在SO以及整个Google中找到的建议之后,我转向了SO社区。

我有一个Asp.Net项目,可将数据库中的数据读取到poco类中。 我无法将代表DateTime的字符串值转换为c#中的适当值。 这是我的代码:

string value = get_value_from_repository(fieldname, repository); 
// value = "21/1/2015 12:00:00 πμ" which means 21-jan-2015 12:00:00 am (greek)

DateTime.ParseExact(value, "dd/M/yyyy h:mm:ss tt",CultureInfo.InvariantCulture, DateTimeStyles.None);

无论我尝试使用哪种格式(“ dd / M / yyyy h:mm:ss tt”,“ d / M / yyyy hh:mm:ss tt”,“ dd / M / yyyy HH:mm:ss tt” )我仍然收到此错误。 任何对正确方向的建议将不胜感激。 谢谢。

您传递的是不变文化,这种文化无法识别“ am”的希腊字符-这是我的猜测。 尝试改用希腊CultureInfo对象(如果设置正确,则可以使用CurrentCulture)。

您可以使用希腊的DateTimeFormat

var greek = new CultureInfo("el-GR").DateTimeFormat;
DateTime dt = DateTime.ParseExact(date, "dd/M/yyyy h:mm:ss tt", greek, DateTimeStyles.None);

这会按预期工作,并在2015年1月21日返回。 如果希腊的DateSeparator不是/您还需要使用'/'因为/被本地化的日期分隔符所代替

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM