DateTime.ParseExact具有7位数字/一位或两位数月份

蒂姆·施密特

直到现在,我还以为我会理解DateTime.ParseExact工作原理,但这令人困惑。为什么以下行返回false

DateTime.TryParseExact("2013122", "yyyyMdd", CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out lastUpdate)

该月份也可以有两位数字。我认为它应该能够理解这意味着2013年1月22日。为什么我走错了路?我错过了什么吗,还是有一个简单的解决方法?


同时,我正在使用这种解决方法,它不是很好,但是可以工作:

public static DateTime? ParseDate_yyyyMdd(String date)
{
    if (date == null)
        return null;
    date = date.Trim();
    if (date.Length < 7)
        return null;
    if (date.Length == 7)
        date = date.Insert(4, "0");
    DateTime dt;
    if (DateTime.TryParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out dt))
        return dt;
    return null;
}

给我想要的结果:

DateTime? date = ParseDate_yyyyMdd("2013122");
Console.Write(date.ToString()); // 01/22/2013

但是,我仍然对此限制的原因感兴趣。也许有人也有更好的方法。

挂图

MSDN文档

如果您没有在自定义格式模式中使用日期或时间分隔符,请对提供程序参数和每个自定义格式说明符的最大形式使用不变的区域性。例如,如果要在模式中指定小时数,请指定较宽的形式“ HH”而不是较窄的形式“ H”。

我认为原因是它试图从左到右解析(没有回溯)。由于没有定界符,因此无法确定日期部分的边界。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

DateTime.ParseExact-如何解析具有相同格式字符串的一位数和两位数小时?

来自分类Dev

python将一位数字的日期和月份转换为两位数

来自分类Dev

有一些“两位数” <=“一位数” jQuery问题

来自分类Dev

有一些“两位数” <=“一位数” jQuery问题

来自分类Dev

一位和两位数的Grep

来自分类Dev

子字符串以捕获一位或两位数字

来自分类Dev

DateTime::createFromFormat - 找不到两位数的秒

来自分类Dev

在特定位置移动名称中只有一位或两位数字的文件

来自分类Dev

如何在R中使用Stringr将一位数字替换为两位数字

来自分类Dev

如何在R中使用Stringr将一位数字替换为两位数字

来自分类Dev

我如何在python 2.7中将一位数字输出为两位数

来自分类Dev

当数字从两位数变为一位数时,如何使屏幕上的字体居中?

来自分类Dev

Bash脚本如何接受一位或两位数的数字并将其设置为2位

来自分类Dev

一位数和两位数的分隔

来自分类Dev

Javascript - 如何总结一个数字的所有第一位和最后一位数字,直到只剩下两位数字?

来自分类Dev

需要Excel公式来提取字符或符号前的一位或两位数数字

来自分类Dev

使用javascript根据一位或两位数字字符提取子字符串

来自分类Dev

将数字字符串拆分为一位数字和两位数字的可能组合

来自分类Dev

Java8 DateTimeFormatter解析带有一位和两位数日期的日期

来自分类Dev

GNU排序文件名的前缀和一位或两位数

来自分类Dev

如何显示两位数而不是一位细枝

来自分类Dev

将字符串中的一位数字(1或5B)替换为两位数字(01或05B)

来自分类Dev

如何在具有一位数字的月份上扫描“ 0”?

来自分类Dev

CSS边框底部保持固定为两位数和一位数

来自分类Dev

sed / awk | 在第二个斜杠后一位数到两位数(零)

来自分类Dev

DateTime中的3位数字(以毫秒为单位)

来自分类Dev

用于捕获时间的正则表达式在冒号之前不会得到两位数,只有一位

来自分类Dev

允许使用正则表达式显示一位数和两位数范围吗?

来自分类Dev

如何将 CSV 文件中特定日期/时间字段值中的一位数小时修改为两位数小时?

Related 相关文章

  1. 1

    DateTime.ParseExact-如何解析具有相同格式字符串的一位数和两位数小时?

  2. 2

    python将一位数字的日期和月份转换为两位数

  3. 3

    有一些“两位数” <=“一位数” jQuery问题

  4. 4

    有一些“两位数” <=“一位数” jQuery问题

  5. 5

    一位和两位数的Grep

  6. 6

    子字符串以捕获一位或两位数字

  7. 7

    DateTime::createFromFormat - 找不到两位数的秒

  8. 8

    在特定位置移动名称中只有一位或两位数字的文件

  9. 9

    如何在R中使用Stringr将一位数字替换为两位数字

  10. 10

    如何在R中使用Stringr将一位数字替换为两位数字

  11. 11

    我如何在python 2.7中将一位数字输出为两位数

  12. 12

    当数字从两位数变为一位数时,如何使屏幕上的字体居中?

  13. 13

    Bash脚本如何接受一位或两位数的数字并将其设置为2位

  14. 14

    一位数和两位数的分隔

  15. 15

    Javascript - 如何总结一个数字的所有第一位和最后一位数字,直到只剩下两位数字?

  16. 16

    需要Excel公式来提取字符或符号前的一位或两位数数字

  17. 17

    使用javascript根据一位或两位数字字符提取子字符串

  18. 18

    将数字字符串拆分为一位数字和两位数字的可能组合

  19. 19

    Java8 DateTimeFormatter解析带有一位和两位数日期的日期

  20. 20

    GNU排序文件名的前缀和一位或两位数

  21. 21

    如何显示两位数而不是一位细枝

  22. 22

    将字符串中的一位数字(1或5B)替换为两位数字(01或05B)

  23. 23

    如何在具有一位数字的月份上扫描“ 0”?

  24. 24

    CSS边框底部保持固定为两位数和一位数

  25. 25

    sed / awk | 在第二个斜杠后一位数到两位数(零)

  26. 26

    DateTime中的3位数字(以毫秒为单位)

  27. 27

    用于捕获时间的正则表达式在冒号之前不会得到两位数,只有一位

  28. 28

    允许使用正则表达式显示一位数和两位数范围吗?

  29. 29

    如何将 CSV 文件中特定日期/时间字段值中的一位数小时修改为两位数小时?

热门标签

归档