我遇到了一条博客文章,声称DateTime.Parse
依赖于COM。我无法找到这一陈述的确认证据。
如果是这种情况,我希望找到有关此文档的文档,最好来自Microsoft。
来源:http://blog.aasheim.org/2008/04/dont-use-datetimeparse-use.html
答案 0 :(得分:4)
我相信你指的是this blog,其中说:
似乎很少有人知道DateTime.Parse()是COM 依赖,邪恶的。而且,即使在Microsoft.NET中也没有 保证DateTime.Parse()接受的字符串 机器在其他机器下是可以接受的基本上是DateTime.Parse() 适用于不介意不可预测行为的新手。
看来作者对词语的选择并不好;他们似乎试图警告读者的是DateTime.Parse
是文化 - 依赖 - 解析操作的成功/失败/结果将取决于当前的文化。这对于开发人员在尝试使用文化敏感/独立方式处理表示日期时间的文本时非常重要。
也就是说,Parse
是否具有实际的COM依赖关系并不重要。由于没有直接记录,因此可以通过添加/删除COM依赖项来更改实现,恕不另行通知。
答案 1 :(得分:1)
是的,它取决于COM。来自this MSDN page:
您可以使用两种解析方法来解析字符串:Parse和ParseExact。 Parse方法的功能植根于COM(它本身植根于旧版本的Visual Basic),无论成本如何,都会发生从字符串到日期的转换。不正确解析的风险是一个不幸的副作用,对于必须同时使用 dd / mm / yy 和 mm / dd / yy 日期的人来说,这是一个可见的副作用。 Microsoft .NET Framework中的DateTime.Parse方法与其前身非常相似,但遗憾的是它遇到了一些相同的问题。代码较慢,因为额外的检查需要时间,并且总会有一些未正确检测到的新格式。在那些旧产品中,你可能还记得,这种行为有时被贬低地称为“邪恶的日期解析”。