簡體   English   中英

C#錯誤“字符串未被識別為有效的DateTime”

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM