[System.DateTime] :: Now.ToString()如何解释字符串?

时间:2014-06-12 04:18:43

标签: datetime powershell

我注意到以下代码:

[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")
然而,我对它如何解释这个字符串输入更感兴趣,而不是正确使用的字符串是什么。

2 个答案:

答案 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,这将给出确切的输出。