如果我们使用ParseExact方法进行精确的日期-时间解析,使用指定的格式,为什么我们需要提供一个IFormatProvider对象?它背后的意义是什么?
例如:
DateTime.ParseExact(dateString, format, provider);我们为什么在这里需要provider?
发布于 2013-09-23 14:15:59
为什么我们需要提供一个IFormatProvider对象?它背后的意义是什么?
它允许特定于文化的选项。特别是:
:或/,这意味着时间分隔符或日期分隔符分别具有特定于区域性的字符。作为最后一点的一个例子,考虑相同的字符串和格式,在美国或沙特阿拉伯的文化中解释:
using System;
using System.Globalization;
class Test
{
static void Main()
{
CultureInfo us = new CultureInfo("en-US");
CultureInfo sa = new CultureInfo("ar-SA");
string text = "1434-09-23T15:16";
string format = "yyyy'-'MM'-'dd'T'HH':'mm";
Console.WriteLine(DateTime.ParseExact(text, format, us));
Console.WriteLine(DateTime.ParseExact(text, format, sa));
}
} 在分析美国文化时,使用公历--而在分析沙特阿拉伯文化时,则使用Um Al Qura日历,其中1434年是我们目前所处的年份(在我写这个答案时)。
https://stackoverflow.com/questions/18961520
复制相似问题