一个简单的&简短的问题:
如何在powershell中设置默认日期格式,例如yyyy-mm-dd?所以任何日期输出都会像这种格式一样?
或如何在一个脚本中设置日期格式全球?
有没有办法只在没有时间的情况下输出日期?当我输出LastWriteTime时,默认为
13-03-2014 14:51
我只需要13-03-2014
但14:51
。
答案 0 :(得分:9)
PowerShell中的日期是DateTime对象。如果您想要特定格式的日期字符串,只需使用内置字符串格式。
PS C:\> $date = get-date
PS C:\> $date.ToString("yyyy-MM-dd")
2014-04-02
文件的LastWriteTime属性也是一个DateTime对象,您可以使用字符串格式以任何方式输出日期的字符串表示。
你想这样做:
gci -recu \\path\ -filter *.pdf | select LastWriteTime,Directory
您可以使用计算属性:
get-childitem C:\Users\Administrator\Documents -filter *.pdf -recurse |
select Directory, Name, @{Name="LastWriteTime";
Expression={$_.LastWriteTime.ToString("yyyy-MM-dd HH:mm")}}
运行
help select-object -full
并阅读有关计算属性的更多信息。
答案 1 :(得分:3)
我已经使用过这个,它对我有用,只需在脚本的开头复制它
$currentThread = [System.Threading.Thread]::CurrentThread
$culture = [CultureInfo]::InvariantCulture.Clone()
$culture.DateTimeFormat.ShortDatePattern = 'yyyy-MM-dd'
$currentThread.CurrentCulture = $culture
$currentThread.CurrentUICulture = $culture
如果您在为CultureInfo加载程序集时遇到问题(我在Windows 2008 Server上遇到此问题),请以这种方式更改第2行
$currentThread = [System.Threading.Thread]::CurrentThread
$culture = $CurrentThread.CurrentCulture.Clone()
$culture.DateTimeFormat.ShortDatePattern = 'dd-MM-yyyy'
$currentThread.CurrentCulture = $culture
$currentThread.CurrentUICulture = $culture
答案 2 :(得分:3)
总是可以使用。\ Documents \ WindowsPowerShell \ profile.ps1
$culture = Get-Culture
$culture.DateTimeFormat.ShortDatePattern = 'yyyy-MM-dd'
Set-Culture $culture