繁体   English   中英

在 Powershell 中设置像 yyyy-mm-dd 这样的默认日期格式?

[英]Setup default date format like yyyy-mm-dd in Powershell?

一个简单而简短的问题:

如何在 yyyy-mm-dd 之类的 powershell 中设置默认日期格式? 所以任何日期输出都会像这种格式?

或如何在一个脚本中全局设置日期格式?

有没有办法只输出日期而没有时间? 当我输出 LastWriteTime 时,默认值为

13-03-2014 14:51

我只需要13-03-201414:51

PowerShell 中的DateTime是一个DateTime对象。 如果您想要特定格式的日期字符串,您可以使用内置的字符串格式。

PS C:\> $date = Get-Date
PS C:\> $date.ToString("yyyy-MM-dd")
2014-04-02

您还可以使用字符串格式 ( -f ) 运算符:

PS C:\> "{0:yyyy-MM-dd}" -f $date
2014-04-02

文件的LastWriteTime属性也是一个DateTime对象,您可以使用字符串格式以任何方式输出日期的字符串表示形式。

你想这样做:

Get-ChildItem -Recurse \\path\ -filter *.pdf | Select-Object LastWriteTime,Directory

您可以使用计算属性:

Get-ChildItem C:\Users\Administrator\Documents -filter *.pdf -Recurse |
  Select-Object Directory, Name, @{Name="LastWriteTime";
  Expression={$_.LastWriteTime.ToString("yyyy-MM-dd HH:mm")}}

help Select-Object -Full

并阅读计算属性以获取更多信息。

对于始终使用,您可以添加到您的 .\\Documents\\WindowsPowerShell\\profile.ps1

$culture = (Get-Culture).Clone()
$culture.DateTimeFormat.ShortDatePattern = 'yyyy-MM-dd'
Set-Culture $culture

我用过这个,它对我有用,只需在脚本的开头复制它

$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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM