我有一个代表 DataTime 值的字符串,我想了解创建该字符串时使用的字符串格式。

例如
- 鉴于“2010 年 1 月 27 日星期三”,我期望“dddd dd MMM yyyy”
- 鉴于“2010 01 27”我期望“yyyy MM dd”

假设该日期接近 DateTime.Now 并且与 CurrentCulture 相关。鉴于我们有 en-GB 文化
- 鉴于“01 01 2010”我期望“dd MM yyyy”

有没有一种简单的方法可以做到这一点?

有帮助吗?

解决方案

您可能分裂的空白得到一个字符串数组 那么你可以测试该数组中的元素针对已知值来尝试猜测格式

e.g。如果你搜索“星期三”,如果你发现它假定“DDDD”

如果一个四位数字假定YYYY

日和月可能是一个问题,你可以测试> 12天但这是非常糟糕的。

,也许你可以对一部开拓创新和试验对所解析的日期的格式化(使用infered格式)版本的相等

使用空白分裂然后DateTime.Parse推断格式

其他提示

最简单的事情就是看 参考资料 用于日期时间格式化字符串并计算它们。

您可以使用反射来获取此信息,或使用反汇编程序(例如 ILDASM)查找程序集中使用的所有字符串并猜测哪些是日期时间格式字符串。

如果反汇编,您可以搜索一周中的几天以及以 dddd, ,它应该告诉您原件是如何构造的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top