我注意到以下代码:
[System.DateTime]::Now.ToString("dd month yyyy")
产生以下输出:
12 12onP2 2014
" DD"正确地显示了今天的第12个日期和" yyyy"正确显示2014年。
但为什么" m"输出12," th"输出" P2"?
(今天是2014年6月12日顺便说一下)。 我知道我应该使用:
[System.DateTime]::Now.ToString("dd MMMM yyyy")
然而,我对它如何解释这个字符串输入更感兴趣,而不是正确使用的字符串是什么。
答案 0 :(得分:4)
Custom DateTime specifiers只是单个或重复的字符。 month
之类的词语并未被统称为具有特殊含义。
它被其角色视为4个独立的部分:
m
= "12"
= 分钟,从0到59. on
= "on"
=(通过"任何其他字符")将字符复制到结果字符串中。 t
= "P"
= AM / PM指示符的第一个字符。 h
= "2"
= 小时,使用1小时至12小时的12小时制。 答案 1 :(得分:3)
month
被解释为format string,其中每个字符组合都有特殊含义;
从上面的页面;
<强>&#34; M&#34;分钟,从0到59. 分钟为12,因此输出&#34; 12&#34;。
&#34;上&#34;没有任何意义,无论是组合还是单独,所以输出&#34; on&#34;。
&#34; t&#34;`AM / PM指示符的第一个字符。它的PM,因此输出&#34; P&#34;。
的&#34; H&#34;小时,使用1小时至12小时的12小时制。它的下午2点,所以输出&#34; 2&#34;。
似乎时间是下午2:12,这将给出确切的输出。