在Microsoft C#的文档中,DateTime.ToString Method (String, IFormatProvider)说:
provider参数定义与标准格式说明符对应的模式,以及日期和时间组件的符号和名称。
我注意到docs只提到了使用provider参数的标准格式说明符
有人可以向我解释为什么这里只提到标准格式说明符“使用提供者参数”而不是标准和自定义格式说明符吗?
因为自定义格式由不同的接口支持,ICustomFormatter。大多数具体实现支持两者。
恕我直言,我强烈怀疑这一段试图解释那些标准格式说明符是在IFormatProvider
本身中定义的。
例如;
d
format specifier代表格式提供者的ShortDatePattern
。D
format specifier代表格式提供者的LongDatePattern
。g
format specifier代表格式提供者的ShortDatePattern
和ShortTimePattern
的组合。s
format specifier表示格式提供程序的SortableDateTimePattern
,它是静态值,格式提供程序不会更改。和更多..
如您所见,那些由IFormatProvider
本身定义的格式说明符。它们的表示值定义了这些属性的定义。
另一方面,the custom date and time format specifiers本身没有定义IFormatProvider
。
例如,IFormatProvider
中是否有任何属性定义fffffff
,hh
或zzz
自定义说明符?没有。
我认为这是本段的“主要”信息。