我已经查看了在 C# 中将非常长的日期格式解析为 DateTime的答案,它有助于解决我的问题,但我担心我可能会遇到一个不相关的问题,因此打开了这个新线程。
日期作为我无法控制的字符串进入我的流程。它们总是代表未来的一个日期。一个例子是“ Wednesday 26th November at 18:30
”。请注意,一天有一个序数,并且没有年份。
我需要把这些变成一个DateTime
结构,这样我就可以……好吧,DateTime
对他们做事!
我目前正在使用以下代码段(根据上述问题进行了调整),但在最后一个条件下它仍然失败,我希望它能够通过。
public DateTime ParseOrdinalDateTime(string dt)
{
DateTime d;
if (DateTime.TryParseExact(dt, "dddd d\"st\" MMMM \"at\" hh:mm", null, DateTimeStyles.AssumeLocal, out d))
return d;
if (DateTime.TryParseExact(dt, "dddd d\"nd\" MMMM \"at\" hh:mm", null, DateTimeStyles.AssumeLocal, out d))
return d;
if (DateTime.TryParseExact(dt, "dddd d\"rd\" MMMM \"at\" hh:mm", null, DateTimeStyles.AssumeLocal, out d))
return d;
if (DateTime.TryParseExact(dt, "dddd d\"th\" MMMM \"at\" hh:mm", null, DateTimeStyles.AssumeLocal, out d))
return d;
throw new InvalidOperationException("Not a valid DateTime string");
}