【问题标题】:C# Check and then convert dd/MM/yyyy to MM/dd/yyyyC# 检查然后将 dd/MM/yyyy 转换为 MM/dd/yyyy
【发布时间】:2020-09-19 15:17:41
【问题描述】:

如何检查日期(字符串)是否为 dd/MM/yyyy,然后将其转换为 MM/dd/yyyy。

我有一些欧元格式的日期,例如 - 25/12/2020

我需要检查格式,然后转换为 MM/dd/yyyy - 12/25/2020

因为它是一个字符串.. 我想我唯一能做的就是检查第一个数字是否 > 12?

row["DATE"].ToString().Substring(0, row["DATE"].ToString().IndexOf("/"))) > 12

我是否只能“切换”职位,因为我可以使用日期功能吗

【问题讨论】:

  • 你不是想检查这个号码是否已经是 MM/dd/yyyy,我希望?如果是,那么问题在于您的日期为 2020 年 8 月 12 日。是 8 月 12 日还是 12 月 8 日?是否应该转换?
  • 看起来您正在从数据库表中读取“日期”列。如果是,那么日期可能以独立于任何格式的方式存储在数据库中。数据库中“DATE”列的数据类型是什么?
  • 没有一个明确的解决方案,因此尝试将其自动化绝对是不明智的。您需要定义一个流程,作为人类,您可以通过该流程确定文档的日期是 dd/MM/yyyy 格式还是 MM/dd/yyyy 格式。如果您可以自动化该过程,那就太好了。如果没有,我认为除了提出某种妥协之外没有什么好的解决方案。
  • 您能否确定文档的来源,以某种方式从中提取一种文化?如果可以,那么您可能有一个可以使用的 DateTimeFormat。除非这些文档也不遵循特定的文化规则(如欧洲的一些官方社区文档,其中日期格式因文档类型而异)。
  • @Joel Coehoorn 值是字符串 - 各种文档的 OCR 输出

标签: c#


【解决方案1】:

要检查字符串是否为日期,请使用 DateTime.TryParseExact 方法。 然后使用 ToString 方法改变这个日期的格式。

【讨论】:

  • 在这种情况下这不是一个好的解决方案。无法确定日期属于哪种格式。
猜你喜欢
  • 2016-06-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
相关资源
最近更新 更多