[英]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.