gpt4 book ai didi

c# - 问题从标准模式解析 NodaTime LocalDate

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:29 26 4
gpt4 key购买 nike

我在尝试将字符串解析为 NodaTime LocalDate 时遇到问题。我的代码如下所示:

var value = "Monday, May 26, 2014";
var pattern = LocalDatePattern.CreateWithInvariantCulture("d");
var parseResult = pattern.Parse(value);
var localDate = parseResult.GetValueOrThrow();

这总是导致 UnparsableValueException:

Additional information: The value string does not match the required number from the format string "MM".

据我所知,我的值应该符合标准模式(当我查看该模式的样本模板值时,它看起来与我试图解析的值非常相似)。我在这里缺少什么?

编辑

我将我的代码更改为以下,但仍然收到类似的错误:

var value = "Monday, May 26, 2014";
var pattern = LocalDatePattern.CreateWithInvariantCulture("dddd, dd MMMM, yyyy");
var parseResult = pattern.Parse(value);
var localDate = parseResult.GetValueOrThrow();

导致另一个 UnparsableValueException:

Additional information: The value string does not match the required number from the format string "dd".

最佳答案

这里的主要问题是您使用的模式是“dd MMMM”(在这两种情况下),但您的输入是“MMMM dd”。 (对于“D”,您还有一个问题,即长日期模式在您输入的年份之前不包含逗号。)

下面解析上面的输入,还演示了如何使用 Format() 来调试预期的输入:

var pattern = LocalDatePattern.CreateWithInvariantCulture("dddd, MMMM dd, yyyy");
Console.WriteLine("Expecting input {0}.", pattern.Format(new LocalDate(2014, 5, 26)));

var value = "Monday, May 26, 2014";
var parseResult = pattern.Parse(value);
var localDate = parseResult.GetValueOrThrow();
Console.WriteLine("Parsed value is {0}.", localDate);

关于c# - 问题从标准模式解析 NodaTime LocalDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23964736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com