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