簡體   English   中英

DateTime.ParseExact 工作日作為文本拋出 FormatException

[英]DateTime.ParseExact weekdays as text throws FormatException

為什么使用 DateTime.ParseExact 的最后一行會拋出 FormatException 解釋提供的字符串 (datetimeAsString) 由於工作日錯誤而無效?

var format = "yyyy/M/ddd";
var provider = new CultureInfo("en-GB"); // Have tried with several other cultures including Invariant
var datetime = new DateTime(4444, 3, 2, 1, 5, 6, 777);
var datetimeAsString = datetime.ToString(format, provider);

// Here datetimeAsString == "4444/3/Wed"
var x = DateTime.ParseExact(datetimeAsString, format, provider);

您的問題不在於工作日(盡管異常消息說明了什么)。 您的問題是 4444 年 3 月有很多星期三,而解析器不知道該選擇哪一個。

如果您添加月份中的某一天以使其明確,它會解析:

var format = "yyyy/M/ddd/dd";
var provider = new CultureInfo("en-GB"); // Have tried with several other cultures including Invariant
var datetime = new DateTime(4444, 3, 2, 1, 5, 6, 777);
var datetimeAsString = datetime.ToString(format, provider);

// Here datetimeAsString == "4444/3/Wed/02"
var x = DateTime.ParseExact(datetimeAsString, format, provider);

關聯

可能您必須將格式設置為

var format = "yyyy/M/dd";

那么也不例外。 這里“dd”代表天數,“ddd”代表星期幾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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