如何制作 LastWriteTime return 文化敏感日期字符串

How to make LastWriteTime return culture sensitive date string

我有这个:

$LogfileInfo = Get-Item C:\windows
$LogfileInfo.LastWriteTime
"Explaining Text: " + $LogfileInfo.LastWriteTime

第 2 行输出为:

21. maj 2015 13:44:45

第 3 行输出为:

Explaining Text: 05/21/2015 13:44:45

它改变了输出,即使它是同一个变量!?

如何获得第 2 行的输出(命名月份,而不是反转 day/month),但前面有文本,如第 3 行?

System.DateTime 的默认输出是日期时间:

"Explaining Text: " + $LogfileInfo.LastWriteTime.DateTime

有时 DateTime 值会转换为字符串。根据何时完成,可以应用当前文化和默认格式的不同设置。

$LogfileInfo.LastWriteTime

到字符串的转换是在 PSH 的 out-default 中完成的,它适用于任何管道,末尾没有另一个 out-… cmdlet。这将为 System.DateTime.

使用默认格式定义(.format.ps1xml 文件)

但是在

"Explaining Text: " + $LogfileInfo.LastWriteTime

转换在生成字符串时发生。

尝试将第一个替换为

$LogfileInfo.LastWriteTime.ToString()

你应该得到与第一个相同的格式。