[英]C# error “String was not recognized as a valid DateTime”
我试图以“yyyyMMdd”格式保存DateTime.Now
我有这个代码
string todaysDate = DateTime.Now.ToString();
...
U_Date_of_PD_added = GetDateFromString(todaysDate)
// U_Date_of_PD_added是日期时间数据库字段
...
//Method to get date from string
private DateTime GetDateFromString(string dateString)
{
string format = "yyyyMMdd";
return DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);
}
我一直收到错误“字符串未被识别为有效的DateTime”。 因为它试图解析。 可能有什么不对?
我不在乎是否节省时间,我宁愿00:00:00.000
将日期转换为字符串时,还需要提供格式字符串:
string todaysDate = DateTime.Now.ToString("yyyyMMdd", CultureInfo.InvariantCulture);
首先你得到今天的日期然后转换为字符串如下,你就完成了。
DateTime today = DateTime.Today.Date;
string date = today.ToString("yyyy/MM/dd");
DateTime.Now.ToString("yyyyMMdd", CultureInfo.InvariantCulture);
会给你当前的日期。 请注意, CultureInfo.InvariantCulture
很重要。 如果您不信任它,请尝试:
var r = DateTime.Now.ToString("yyyyMMdd", new CultureInfo("ar-SA")); // 14321128
var r2 = DateTime.Now.ToString("yyyyMMdd", CultureInfo.InvariantCulture); // 20111026
DateTime.Now.ToString()
一种特定于区域的格式,但它主要包含时间。 此格式称为“常规日期/时间模式(长时间)”。
因此,尝试使用您的格式字符串解析它将失败,因为您的格式字符串不包含有关时间组件的信息。
您可以在不提供格式字符串的情况下使用DateTime.TryParse,也可以在调用DateTime.Now.ToString时提供格式字符串。
使用DateTime.Now.ToString()
无法将todaysDate
的值转换为DateTime
对象,因为DateTime.Now.ToString()
会生成使用默认日期格式的值( 26-10-2011 14:02:31
) 。 请尝试这样做: string todaysDate = DateTime.Now.ToString("yyyyMMdd");
你应该能够使用GetDateFromString
方法将其转换回来。
DateTime.Now.ToString("yyyyMMdd")
将返回20110926的字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.