我在分析一个日期。问题是,我的正则表达式省略了任何字母,因为我想避免01-28-2019 UTC
或主日期之外的任何字母。现在,当日期的格式像我刚才列出的那样时,它工作得很好,但是当我们得到一个像28-JAN-19
的日期时,它就失败了。
var sourceValue = Regex.Replace("28-JAN-19", @"[A-Za-z]", "");
var parsed = DateTime.Parse(sourceValue);
我需要解析的日期可以是几种不同的格式。正则表达式可以用来处理这个问题吗?如果是这样,需要做什么调整来修剪字符串xx-xx-xx
部分之外的任何字母?28-JAN-19
28-01-19
28-JAN-19 13:15:00
28-01-19 13:15:00
28-01-2019 13:15:00
2条答案
按热度按时间x0fgdtte1#
此RegEx应与您提供的所有示例匹配:
不过,它确实根据您的示例做出了一些假设。首先,它假设您的所有日期始终以2位数的日期开始。它还假设您的月份缩写将是3个字母长。它还假设您的小时、分钟和秒都是2位数。让我知道这些假设是否不正确。
llycmphe2#
正则表达式可能不是您的最佳选择。如果您知道可能遇到的全部格式,那么可以使用常规的DateTime.ParseExact和格式字符串。检查
FormatException
以了解您是否成功解析了日期。如果你的月份是使用英语缩写然后一定要通过在一个英语文化