我正在尝试将字符串转换为c#中的datetime。我试过下面的
DateTime.ParseExact("01.01.2014 11:48:25","yyyy-MM-dd hh:mm:ss",System.Globalization.CultureInfo.CurrentCulture)
但我收到错误String was not recognized as a valid DateTime
我尝试Convert.ToDateTime
,但它会缩短小时,分钟和秒钟。
如何摆脱这个问题?
UPDATE1 我也尝试使用像
DateTime.ParseExact("01.01.2014 11:48:25","dd-MM-yyyy hh:mm:ss",System.Globalization.CultureInfo.CurrentCulture)
但我仍然得到同样的错误
UPDATE2 使用代码后
DateTime.ParseExact("01.01.2014 11:48:25","dd.MM.yyyy HH:mm:ss",System.Globalization.CultureInfo.CurrentCulture)
工作正常。但是,如果将日期作为"01/01/2014 11:48:25"
传递,那么这种格式将不起作用。
答案 0 :(得分:1)
请改为尝试:
DateTime.ParseExact("01.01.2014 11:48:25", "dd.MM.yyyy hh:mm:ss", System.Globalization.CultureInfo.CurrentCulture);
答案 1 :(得分:1)
DateTime
对象提供了ParseExact()
方法的三次重载。您可以尝试使用以下重载来使用指定的格式数组将指定的string
转换为其DateTime
等效项:
DateTime.ParseExact(string s, string[] formats, IFormatProvider provider, DateTimeStyles style)
示例:
...
// define the possible date formats
var formats = new[] {
"dd.MM.yyyy HH:mm:ss",
"dd-MM-yyyy HH:mm:ss",
"dd/MM/yyyy HH:mm:ss"
};
DateTime.ParseExact("01.01.2014 11:48:25", formats, System.Globalization.CultureInfo.CurrentCulture, DateTimeStyles.None);
...