DateTimeFormatter.Format的返回值应该是一个字符串。但是,当尝试解析DateTimeFormatter字符串的结果(例如新的DateTime对象中的日期部分)时,它将抛出"System.FormatException"
。
示例代码:
private void TestDateTimeFormatter()
{
var forlatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("day");
var casualDayFormat = forlatter.Format(new DateTime(2018, 1, 1));
Console.WriteLine(casualDayFormat); // result is "1"
var casualDateTime1 = DateTime.Parse("1" + ".1.2018"); //Works
var casualDateTime = DateTime.Parse(casualDayFormat + ".1.2018"); //Throws wrong format exception
Console.WriteLine(casualDateTime);
}
某些事情没有加起来。几乎可以肯定,casualDayFormat
(这是一个字符串,并且值为“ 1”)与字符串"1"
之间没有区别。但是为什么会引发异常?
编辑:例外详细信息
堆栈跟踪:
System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
//user-code
异常_message:
其中一个已识别项目的格式无效。
其他方法:
事件int.Parse(...)不适用于字符串:
System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)