C# 日期时间格式-无法识别一位数的日期
我需要读取以下格式的字符串:“6102015”(意思是2015年10月6日),并将其转换为DateTime对象 我尝试了以下代码,但无效:C# 日期时间格式-无法识别一位数的日期,c#,datetime,formatting,C#,Datetime,Formatting,我需要读取以下格式的字符串:“6102015”(意思是2015年10月6日),并将其转换为DateTime对象 我尝试了以下代码,但无效: DateTime.ParseExact("6102015", "dMyyyy", CultureInfo.CurrentCulture); 但是当我使用带有额外0的日期字符串测试代码时,它起了作用 DateTime.ParseExact("06102015", "dMyyyy", CultureInfo.CurrentCulture); // works
DateTime.ParseExact("6102015", "dMyyyy", CultureInfo.CurrentCulture);
但是当我使用带有额外0的日期字符串测试代码时,它起了作用
DateTime.ParseExact("06102015", "dMyyyy", CultureInfo.CurrentCulture); // works correctly
有没有一种方法可以在不添加0的情况下读取此日期格式
我提前感谢你的帮助
有没有一种方法可以在不添加0的情况下读取此日期格式
在我看来,添加一个0是你最不担心的事情。这需要一行代码
假设您有数据库的副本或可以有效更改的内容,我会:
abccc
变成0a0bcccc
)abcyyy
:
- 尝试将其解析为
0abcyyy
- 尝试将其解析为
ab0cyyyy
- 如果只有一个解析有效,则将该结果存储在新列中
- 您可以使用其他数据(例如插入顺序)来确定哪个是“正确的”解析
- 你可能不会,在这种情况下,你需要决定做什么
abccc
变成0a0bcccc
)abcyyy
:
- 尝试将其解析为
0abcyyy
- 尝试将其解析为
ab0cyyyy
- 如果只有一个解析有效,则将该结果存储在新列中
- 您可以使用其他数据(例如插入顺序)来确定哪个是“正确的”解析
- 你可能不会,在这种情况下,你需要决定做什么
abccc
变成0a0bcccc
)abcyyy
:
- 尝试将其解析为
0abcyyy
- 尝试将其解析为
ab0cyyyy
- 如果只有一个解析有效,则将该结果存储在新列中
- 您可以使用其他数据(例如插入顺序)来确定哪个是“正确的”解析
- 你可能不会,在这种情况下,你需要决定做什么
abccc
变成0a0bcccc
)abcyyy
:
- 尝试将其解析为
0abcyyy
- 尝试将其解析为
ab0cyyyy
- 如果只有一个解析有效,则将该结果存储在新列中
- 您可以使用其他数据(例如插入顺序)来确定哪个是“正确的”解析
- 你可能不会,在这种情况下,你需要决定做什么
你真的应该避免这种格式。以“1112015”为例……那是2015年1月11日还是2015年11月1日?只要说“不”对于模棱两可的日期/时间格式…日期和时间代码很难正确处理,而不会出现这样不必要的问题。这是一个很好的观点。但由于我只是在处理其他人的数据库,所以我真的没有这种选择。我真的不知道如果我偶然遇到1112015我会怎么做。:/但感谢你的洞察力。我会和你谈谈然后找到数据库的所有者,并确保他们意识到a)当数据库具有本机日期/时间类型时,将日期/时间值存储为字符串是个坏主意;b)使用模棱两可的格式是一个非常可怕的想法。如果您假设第一个字段是当天,只要在它前面填入一个0(如果需要),然后将其转换。简言之,不,您将得到一个FormatException“s不包含日期和时间的有效字符串表示形式”。您应该真正避免这种格式。以“1112015”为例例如…是2015年1月11日还是2015年11月1日?对模棱两可的日期/时间说“不”