当前位置:  开发笔记 > 编程语言 > 正文

DateTime.Parse(myString)有什么问题?

如何解决《DateTime.Parse(myString)有什么问题?》经验,为你挑选了3个好方法。

我正在浏览Scott Hanselman的Developer Interview问题列表,并遇到了这个问题:

DateTime.Parse(myString)有什么问题?

虽然我知道在解析一串未知格式或原点时存在固有的风险,还有其他原因吗?是否使用DateTime.ParseExact代替?它应该是myString.ToString()吗?



1> Joel Coehoor..:

此外,语言环境问题,DateTime.Parse()也可能抛出一个你必须捕获的异常.使用DateTime.TryParse()DateTime.TryParseExact()代替.


当数据来自不可靠的源时,TryParse/TryParseExact非常适合.但是,如果您有充分的理由相信无效数据表示重大系统错误,那么抛出异常是正确的做法.普遍将Parse改为TryParse并不是一个好主意.

2> Jon Skeet..:

在系统上使用当前的线程文化通常是一个坏主意,"尝试各种格式,看看它们是否有效."

具有特定文化的ParseExact是一种更加可控和精确的方法.(即使你指定了当前的文化,它也会让读者更清楚地知道这是怎么回事.)



3> Torbjörn Gyl..:

正如MSDN所说:

由于Parse(String)方法尝试使用当前区域性的格式规则解析日期和时间的字符串表示形式,因此尝试解析跨不同文化的特定字符串可能会失败或返回不同的结果.如果将跨不同的语言环境解析特定的日期和时间格式,请使用DateTime.Parse(String,IFormatProvider)方法或ParseExact方法的重载之一,并提供格式说明符.

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有