即使在使用后DateTime.ParseExact我也收到錯誤
字串在 c# 中未被識別為有效的日期時間
下面是我的代碼
string strIDODDate = DateTime.ParseExact(ObjIp.ID_ODchangeDate, "dd-MM-yyyy hh:mm:ss", CultureInfo.InvariantCulture).ToString("dd-MM-yyyy");
這是完整的代碼集
string strRFCsDate = DateTime.Now.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture);
//string strRFCsDate1 = DateTime.ParseExact("25-09-2019 00:00:00.000", "dd-MM-yyyy hh:mm:ss.fff", CultureInfo.InvariantCulture)
// .ToString("dd-MM-yyyy");
if (string.IsNullOrEmpty(ObjIp.ID_ODchangeDate))
{
Tobj.ID_ODchangeDate = strRFCsDate;
}
else
{
//Tobj.ID_ODchangeDate = Convert.ToString(ObjIp.ID_ODchangeDate);
string strIDODDate = DateTime.ParseExact(ObjIp.ID_ODchangeDate, "dd-MM-yyyy hh:mm:ss", CultureInfo.InvariantCulture).ToString("dd-MM-yyyy");
Tobj.ID_ODchangeDate = strIDODDate;
}
更新
經過除錯,我發現即將出現的格式例外如下
10/28/2021 5:34:35 AM : 10/7/2019 12:00:00 AM 10/28/2021 5:34:35 AM : Error : Dumping into Table Process : String was not recognized as a valid DateTime. at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
uj5u.com熱心網友回復:
您的問題不清楚,所以我假設您的傳入日期時間字串類似于 25-09-19 00:00:00.000
var inDateTime = "25-09-19 00:00:00.000";
string parsedDateTime = DateTime.ParseExact(inDateTime, "dd-MM-yy hh:mm:ss.fff", CultureInfo.InvariantCulture).ToString("dd-MM-yyyy");
Console.WriteLine(parsedDateTime);
輸出
25-09-2019
更新:
請查看:https : //docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
這些是用于決議日期時間的日期和時間格式字串。
目前還不清楚您的值是 10 月 7 日還是 7 月 10 日……假設是 7 月 10 日:
using System;
using System.Globalization;
public class Program
{
public static void Main()
{
var inDateTime = "10/7/2019 12:00:00 AM";
string parsedDateTime = DateTime.ParseExact(inDateTime, "dd/M/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture).ToString("dd-MM-yyyy");
Console.WriteLine(parsedDateTime);
}
}
輸出
10-07-2019
請參閱:https : //dotnetfiddle.net/2YMb82
uj5u.com熱心網友回復:
根據您的評論和更新:
ObjIp.ID_ODchangeDate 將于 10/7/2019 12:00:00 AM 到來
你告訴ParseExact你的格式是“dd-MM-yyyy hh:mm:ss tt”這意味著一些事情:
- 你的一天總是有 2 位數字,這意味著前導 0(你有 10)
- 你的月份總是有 2 位數字,意思是前導 0(你有 7)
- 您的年份將有 4 位數字(您有 2019)
- 您的分隔符將是“-”(您有 /)
- 您將使用 12 小時制,包括秒(您有 12:00:00 AM)
您給出的示例不適用于我串列中的 2 和 4。我希望在任何一個月的前 9 天它都不會為 1,因此您需要指定一種不包含前導 0 并使用正確的日期分隔符的格式。你想要的格式是“d/M/yyyy hh:mm:ss tt”這種格式告訴決議器:
- 如果需要,當天將有 2 位數字,不保證前導 0
- 如果需要,月份將有 2 位數字,不保證前導 0
- 年份將有 4 位數字
- 分隔符將是“/”
- 時間將使用 12 小時制,包括秒
這意味著代碼將如下所示。我將格式提取到變數中以提高可讀性,并將 object.property 轉換為變數以使其簡單地在小提琴中運行。
string ObjIp_ID_ODchangeDate = "10/7/2019 12:00:00 AM";
string dtFormatIn = "d/M/yyyy hh:mm:ss tt";
string dFormatOut = "dd-MM-yyyy";
string strIDODDate = DateTime.ParseExact(ObjIp_ID_ODchangeDate, dtFormatIn, CultureInfo.InvariantCulture).ToString(dFormatOut);
Console.WriteLine(strIDODDate);
如您所見,這適用于您的情況。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/339860.html
上一篇:將一系列時間戳與JPA的QuerybyExample匹配
下一篇:Vue計算屬性與偵聽器
