【问题标题】:ambigous string date to datetime/date C#不明确的字符串日期到日期时间/日期 C#
【发布时间】:2018-10-11 10:47:04
【问题描述】:

如果有像 '9/10/2002' 这样的字符串日期,我如何在 c# 中定义日期是 2002 年 10 月 9 日还是 2002 年 9 月 10 日?

如何将其存储在日期/日期时间变量中?

【问题讨论】:

  • 数据格式取决于您的系统设置,对于 Windows,请检查您的日期和时间设置的格式。
  • 其他用户将您的问题标记为低质量和需要改进。我重新措辞/格式化您的输入,使其更易于阅读/理解。请查看我的更改以确保它们反映您的意图。如果您对我有其他问题或反馈,请随时给我留言。

标签: c# string date datetime


【解决方案1】:

你无法说出作者在写这篇文章时的意图,除非你告诉他们你的预期,或者有一些其他日期可以用来发现大于 12 的值。

但是,当您知道格式时,您可以使用类似这样的方法来确保以所需的格式对其进行解析:

string myDate = "9/10/2001";
string pattern = "MM/dd/yyyy";
CultureInfo enUS = new CultureInfo("en-US"); 
DateTime.TryParseExact(myDate, pattern, enUS,  DateTimeStyles.AdjustToUniversal, out datelimit);

这是在您的用户界面中使用日期选择器的一个很好的理由。

【讨论】:

  • 我明白了...我只是想确定有什么办法可以让我这样做,非常感谢
【解决方案2】:

无法从字符串日期中识别它是使用 dd/MM/yyyy 还是 MM/dd/yyyy 格式。这需要弄清楚,然后将其存储在日期时间变量中

DateTime myDate = new DateTime(2002, 9, 10);

请参考https://www.dotnetperls.com/datetime-format 以获取更多参考。

【讨论】:

  • 有时可以推断 - 2020 年 12 月 25 日是非常明确的。从那你可以推断出一组日期,只要一个日期有一天> 12。
猜你喜欢
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
  • 2016-04-02
  • 1970-01-01
  • 1970-01-01
  • 2012-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多