[英]How to convert string with any format To DateTime
我在 Excel 中有一個DateTime
作為具有不同格式的string
。 我想使用 c#將string
格式轉換為DateTime
。 但我收到以下異常:
字符串未被識別為有效日期時間。
DateTimeOffset.Parse("09/20/2019 17:25:59");
預期的:
2019 年 9 月 20 日 17:25:59
實際的:
System.FormatException
您可以在這里使用DateTime.ParseExact
Doc
var dateThatDesired = DateTime.ParseExact("09/20/2019 17:25:59","MM/dd/yyyy HH:mm:ss",CultureInfo.InvariantCulture);
如果您在 excel 表中的格式數量有限,您可以使用DateTime.TryParseExact()
對其進行測試,如果返回成功,您可以使用已解析的 dateTime,您將使用out
參數獲得。
首先,沒有通用格式,因為日期表示是模棱兩可的,一個經典的例子是
01/02/03 == 2 Jan 2003 (USA)
01/02/03 == 1 Feb 2003 (Russia)
01/02/03 == 3 Feb 2001 (China)
如果您有一系列預期格式,您可以嘗試ParseExact
,例如
string[] possibleFormats = new[] {
"MM'/'dd'/'yyyy HH:mm:ss", // USA
"dd'.'MM'.'yyyy HH:mm:ss", // Russia
"yyyy'-'MM'-'dd HH:mm:ss", // China
"yyyy'-'MM'-'dd'T'HH:mm:ss", // ISO 8601
};
string value = @"09/20/2019 17:25:59";
DateTimeOffset result = DateTimeOffset.ParseExact(
value,
possibleFormats,
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeLocal);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.