我需要解析Oct 3, 2014 10:05 a.m.
我熟悉使用DateTime.TryParseExact()
使用TT
表达式来表达AM或PM。但是,将其修改为T.T.
无法将string
成功解析为DateTime
。
这是我的代码:
string dateContent = "Oct 3, 2014 10:05 a.m.";
DateTime parseDate;
bool attempt = DateTime.TryParseExact(content, "MMM d, yyyy hh:mm T.T.", CultureInfo.CurrentCulture, DateTimeStyles.None, out parseDate);
非常感谢任何帮助。如果遗漏任何内容或需要澄清,请告诉我。
答案 0 :(得分:3)
T.T.
格式不是标准格式,因为您可以看到here,所以我的建议是让您通过简单的方式摆脱它:
“2014年10月3日上午10:05”。替换(“a.m。”,“AM”)。替换(“p.m。”,“PM”);
<强>更新强>
一个更通用的解决方案,即通过输入自定义IFormatProvider
而不是太过分,就是使用这样的正则表达式:
Regex.Replace(dateContent,“([a | p])。(m)。”,“$ 1 $ 2”,RegexOptions.IgnoreCase);
这应该可以解决问题(请注意,我没有附近的c#编译器,很难我没有测试它)。
这样做可以找到模式a.m.
或p.m.
(忽略大小写)并替换为am
或pm
。
从那时起,TryParseExact
将进一步发挥作用。