日期时间格式 - 无法识别一位数日

时间:2015-10-06 21:00:09

标签: c# datetime formatting

我需要按以下格式读取字符串:“6102015”(意思是2015年10月6日)并将其转换为DateTime对象。

我尝试了以下代码,但无效:

DateTime.ParseExact("6102015", "dMyyyy", CultureInfo.CurrentCulture);

但是当我使用带有额外0的日期字符串测试代码时,它起作用了。

DateTime.ParseExact("06102015", "dMyyyy", CultureInfo.CurrentCulture); // works correctly

有没有办法在不添加0的情况下读取此日期格式?

我事先感谢你的帮助。

1 个答案:

答案 0 :(得分:3)

  

有没有办法读取这种日期格式而无需添加0?

添加0是您最不担心的问题,IMO。 需要一行代码。

假设您已经获得了数据库的副本或者您可以有效改变的内容,我会:

  1. 创建日期/时间类型的字段,或者如果必须使用字符串,请执行此操作但使用ISO-8601格式(yyyy-MM-dd)
  2. 解析所有已经是8个字符的值
  3. 通过插入两个0来解析所有6个字符的值(因此abcccc变为0a0bcccc
  4. 对于每个剩余值,abcyyyy形式:
    • 尝试将其解析为0abcyyyy
    • 尝试将其解析为ab0cyyyy
    • 如果只有一个解析工作,则将结果存储在新列中
  5. 现在查看所有剩余的行(即没有填充“已知良好”值的行)
    • 可能能够使用其他数据(例如广告订单)来找出哪个是“正确的”解析...
    • 你可能不会 - 在这种情况下你需要决定做什么