我的字符串格式为“15/03/2046”。如何将此字符串转换为DateTime对象?
我的问题是当我做Convert.ToDateTime(“15/03/2046”)时,我得到一个例外。
当我做Convert.ToDateTime(“03/03/2046”)时,每件事情都可以正常工作
所以我想我必须在转换时以某种方式指定格式....
答案 0 :(得分:1)
答案 1 :(得分:0)
使用DateTime.ParseExact
指定输入字符串的格式:
DateTime d = DateTime.ParseExact(
"15/03/2046",
"dd/MM/YYYY",
CultureInfo.InvariantCulture
);
答案 2 :(得分:0)
更多通用代码,使用扩展方法,以及默认值,如果它无法解析日期
void Main()
{
var dt = "15/03/2046";
dt.ToDateTime("fr-FR", DateTime.Now).Dump();
}
public static class Extensions
{
public static DateTime ToDateTime(this string dateTime, string culture, DateTime defaultValue)
{
DateTime dt;
if (DateTime.TryParse(dateTime, System.Globalization.CultureInfo.CreateSpecificCulture(culture), System.Globalization.DateTimeStyles.None, out dt))
return dt;
else
return defaultValue;
}
}