Jon*_*eet 27
您可以将DateTime.ParseExact或DateTime.TryParseExact用于您不信任的数据.例如:
using System;
class Test
{
static void Main()
{
string formatString = "yyyy'##'MM'##'dd' 'HH'*'mm'*'ss";
string sampleData = "2010##02##10 07*22*15";
Console.WriteLine(DateTime.ParseExact(sampleData,
formatString,
null));
}
}
Run Code Online (Sandbox Code Playgroud)
格式字符串中的引号不是绝对必要的 - 这也可以使用:
string formatString = "yyyy##MM##dd HH*mm*ss";
Run Code Online (Sandbox Code Playgroud)
但是,使用引号意味着您明确指出引号之间的字符将按字面意思使用,而不是被理解为模式字符 - 因此,如果您将"#"更改为"/",则使用引号的版本肯定会使用"/" "而没有的版本将使用特定于文化的价值.
将null在调用ParseExact表示"使用目前的文化" -在这种情况下,它不会带来多大的改变,但是一个常用有用的替代是CultureInfo.InvariantCulture.
不幸的是,没有办法让BCL解析格式字符串并保留信息; 我自己的Noda Time项目纠正了这种情况,我希望它能够更快地解析和格式化 - 但目前还远没有生产就绪.
| 归档时间: |
|
| 查看次数: |
28176 次 |
| 最近记录: |