我需要在程序中解析日期,但是在一个用户的计算机上失败(丹麦)。据我所知,它适用于所有具有相同设置的同事。

该代码如下所示:

DateTime result;
if (DateTime.TryParse(InputBox.Text, out result))
    YyyymmddField.Text = result.ToString("yyyyMMdd");
else
    YyyymmddField.Text = "(invalid)";
CurrentCultureda-DK,他的配置格式是:yyyy.MM.dd。我要解析的日期字符串是2015.07.14
不管当前的文化如何,它都可以在我们的机器上(瑞典)运行。它也适用于他的同事,但不适用于他。

我们在全局拥有数百名用户,据我们所知,他是唯一发生故障的计算机。

除了当前的CultureInfo之外的其他东西会影响TryParse的工作方式吗?

最佳答案



不,没有这样的事情。如果您使用不带任何DateTime.TryParseIFormatProvider,它将使用当前计算机的CurrentCulture设置。

documentation;



我正在使用.NET Framework 4.5,并且AllCultures内部只有7种文化,没有这种文化作为标准日期和时间格式。如果您不愿意/不能告诉我们您其他同事的CurrentCulture是什么,我认为他会在我看来使用其中之一。

ar
bn
ml
ar-SA
bn-IN
ml-IN
bn-BD

您可以使用 InvariantCulture 来避免困惑,因为您的字符串具有像yyyy.MM.dd这样的稳定​​格式,而不必希望他的CurrentCulture设置可以解析或不解析。

关于c# - DateTime.TryParse对一位用户失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31161267/

10-12 22:41