gpt4 book ai didi

c# - 适用于任何文化的 DateTime.TryParse

转载 作者:太空宇宙 更新时间:2023-11-03 17:08:55 25 4
gpt4 key购买 nike

这个有很多线程,但我仍然被以下问题阻止:

我有什么:

我正在尝试构建将选择个人出生日期的 Windows Phone 应用程序

代码隐藏:

string dateString = "";

DateTime dt = DateTime.Now;
if (value != null && DateTime.TryParse(value.ToString(), culture, DateTimeStyles.None, out dt))
{
if (dt.Equals(DateTime.MinValue))
{
//dateString = "mm/dd/yyyy";
return "";
}
else
return dt.ToShortDateString();
}
else
return dateString;
}

我需要的:

我希望它能够解析任何应该独立于文化的日期格式。

我尝试了什么:

1.我尝试使用 CultureInfo.InvariantCultute、CultureInfo.CurrentCulture

2.尝试使用ExactParser如下:

string[] formats = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", "d/M/yyyy hh:mm:ss tt", "dd/MM/yyyy hh:mm:ss tt", "d/M/yyyy" , "dd/MM/yyyy" , "M/d/yyyy" ,"MM/dd/yyyy", 
"MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", "dd/MM/yyyy hh:mm:ss", "d/M/yyyy h:mm:ss",
"M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", "d/M/yyyy hh:mm tt", "d/M/yyyy hh tt",
"M/d/yyyy h:mm", "M/d/yyyy h:mm", "d/M/yyyy h:mm", "d/M/yyyy h:mm",
"MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm","dd/MM/yyyy hh:mm", "dd/M/yyyy hh:mm"};


if (value != null && DateTime.TryParseExact(value.ToString(), format, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))

但这太硬编码了,不会涵盖几种情况。

有没有办法选择任何格式的 DOB?

任何帮助将不胜感激。谢谢!!

最佳答案

不一定,因为每个人都有自己的日期格式。

Also, this!

您基本上想做的是从上述 XKCD comic 的后半部分神奇地推断出日期。 . ;)

也就是说,您可以尝试并执行此操作的唯一方法是使用您认为可能的每种格式解析字符串,然后在解析成功的每种情况下进行健全性检查。然而,所说的完整性检查会很困难...... 11-02 是指 2 月 11 日还是 11 月 2 日?您需要某种上下文。

关于c# - 适用于任何文化的 DateTime.TryParse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18140769/

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