通常我会像这样解析日期
DateTime.Parse()
DateTime.ParseExact()
我处于用户运行exe并传递日期作为参数的情况。所以用户可以用各种格式给出日期,比如
dd/MM/yyyy
MM/dd/yyyy
dd-MM-yyyy
MM-dd-yyyy
yyyyMMdd
所以我必须解析那个日期。当日期格式是yyyyMMdd然后我就像这样的parisng日期DateTime.ParseExact(this.enddate, "yyyyMMdd", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");
所以请指导我应该编写什么代码来解析日期格式的解析日期。感谢
答案 0 :(得分:5)
我建议您对单一格式进行标准化。否则,如果您的日期可以通过不同的格式进行解析,则会遇到不明确的日期,但两者都代表不同的日期 例如: DD-MM-YYYY MM-dd-yyyy
答案 1 :(得分:1)
我应该编写什么代码来解析适用于任何日期格式的日期
作为技术答案,您可以通过包含所有可接受格式的字符串数组将多种格式传递给DateTime.TryParseExact()。
但实际上,其他人已经指出,没有办法说明格式没有严格执行的月份和日期之间的区别。
一种可能的解决方案是让用户将日期作为三个单独的参数传递,每个参数都标记有某种指标,例如/y2013 /m11 /d12
或y:2013 m:11 d:12
。您甚至可以像/y2013/m11/d12
一样将它们混合在一起。然后你可以使用正则表达式来解析部分,甚至只是简单的旧字符串操作。
答案 2 :(得分:0)
没有内置的方法来解析适用于任何格式的日期。但是,您可以使用DateTimeFormatInfo轻松定义自己的格式,只要您提前知道格式,就可以将或多或少的格式转换为正确的日期。
答案 3 :(得分:0)
在每个主要网站中,您使用组合框输入日期/月/年的日期 或一些日期时间小部件。所以我没有理由使用文本框。如果你真的 需要,使用预定义的格式添加工具提示或水印并强制执行 用户。