DateTime.TryParse在不同的机器中工作方式不同



我在项目中使用了以下代码,但"DateTime.TryParse"在不同的机器中给出了不同的结果。在我的机器上,IsDate方法返回"False",在另一台机器上返回"True"。

if(IsDate("30/03/2020 04:00",out dt))
{
}
private bool IsDate(object o, out DateTime date)
{
return DateTime.TryParse(o.ToString(), CultureInfo.CurrentCulture, DateTimeStyles.None, out date);
}

我也尝试过"DateTime.TryParseExact"在下面的文章,但没有用。https://github.com/dotnet/runtime/issues/25120

请给我一些建议,让它正常工作。

谢谢。

用固定区域性替换CultureInfo.CurrentCulture,例如CultureInfo.InvariantCulture:

private bool IsDate(object o, out DateTime date)
{
return DateTime.TryParse(o.ToString(), System.Globalization.CultureInfo.InvariantCulture, 
DateTimeStyles.None, out date);
}

CultureInfo.CurrentCulture是每个线程的设置/属性,默认为机器上的用户设置。

相关内容

  • 没有找到相关文章

最新更新