【发布时间】:2017-01-14 19:15:28
【问题描述】:
我对 C# 还很陌生。
我必须构建一个脚本来读取字符串并尝试将其转换为日期。
问题是:
-日期有不同的格式。 (国际、美国、日本)
-日期带有不同的分隔符,或者根本没有。
-这一年可能是完整的或只有 2 个职位
我已经开始替换可能的分隔符:
dateinstring = dateinstring.Replace("-","");
dateinstring = dateinstring.Replace(".","");
dateinstring = dateinstring.Replace("/","");
然后检查长度以查看年份是否完整(例如 31102012 或 311012)
if(dateinstring.lenght = 8){
//check format with complete date
}else{
//check format with reduced year
}
现在我偶然发现了这个函数:DateTime.TryParseExact,它似乎做同样的事情,但它返回一个布尔值(真或假)而不是日期本身。
我错过了什么吗? C# 中是否有已经这样做的方法,或者我应该继续使用我的解决方案吗?
【问题讨论】:
-
有一个
out参数 -out DateTime result -
方法
TryParseExact定义了一个在方法中设置的out参数。看看 MSDN 页面上的示例msdn.microsoft.com/en-us/library/h9b85w22(v=vs.110).aspx -
什么是“国际”日期格式? ISO标准? (如果只有日期部分,则与日语相同)
-
在不了解日期时间文化的情况下,可能会导致一些有趣的误解 - 英国(dd/MM/yyyy) 和美国(MM/dd/yyyy)。