Powershell (日期)。ToString不使用指定的分隔符

Powershell (日期)。ToString不使用指定的分隔符,powershell,Powershell,为什么ToString()方法返回带有“-”而不是指定的“/”的日期 PS 11:59 C:\src\t >((Get-ChildItem 'u.txt').LastWriteTime).ToString('yyyy/MM/dd') 2019-08-09 /是,对于您的文化来说,显然是- 正如文档部分所指出的 要更改特定日期和时间字符串的日期分隔符,请在文字字符串分隔符中指定分隔符字符 …你想这样做 ((Get-ChildItem 'u.txt').LastWriteTime).ToS

为什么ToString()方法返回带有“-”而不是指定的“/”的日期

PS 11:59  C:\src\t
>((Get-ChildItem 'u.txt').LastWriteTime).ToString('yyyy/MM/dd')
2019-08-09
/
是,对于您的文化来说,显然是
-

正如文档部分所指出的

要更改特定日期和时间字符串的日期分隔符,请在文字字符串分隔符中指定分隔符字符

…你想这样做

((Get-ChildItem 'u.txt').LastWriteTime).ToString('yyyy''/''MM''/''dd')
…或者这个

((Get-ChildItem 'u.txt').LastWriteTime).ToString("yyyy'/'MM'/'dd")
你也可以得到同样的结果

((Get-ChildItem 'u.txt').LastWriteTime).ToString('yyyy\/MM\/dd')

谢谢有人会认为这可能更直接。不是很直观。嗯,它和年和日说明符是小写的一样简单,但月说明符是大写的,并且和使用转义序列的任何其他环境一样简单。必须有某种方法告诉它“在这里插入特定于区域性的日期分隔符”,而
/
恰好就是它。请注意,如果您想在输出中使用文字冒号,同样的问题也会出现。@Lee_Dailey我不确定“您配置的短日期字符串”是什么意思。
d
格式将使用特定于区域性的日期分隔符,该分隔符在作者的系统上是
-
,而他们需要
/
。或者您的意思是在修改当前区域性的短日期字符串(例如,
(获取区域性).DateTimeFormat.ShortDatePattern='yyyy\/MM\/dd'
)之后?在这种情况下,
(Get Date).toSortDateString()
也可以工作。