[英]Apply UFormat to System.DateTime variable
我正在尝试将特定格式应用于 Powershell 上的 DateTime 变量,但我发现这是不可能的。
这很好用:
>> Get-Time -UFormat "%Y%m%d-%h%M%S"
20210412-135938
但是如果我尝试将它分配给一个变量然后进行格式化,我会遇到一个错误,例如
$startDate=Get-Date -Year 2021 -Month 01 -Day 01 -Hour 11 -Minute 00 -Second 00
$startDate=$startDate.addHours(10)
$startDate=$startDate.addHours(23)
($startDate) -UFormat "%Y%m%d-%h%M%S"
然后我收到Token Uformat unexpected
错误。 有人可以阐明如何使这种格式起作用吗?
谢谢,
您可以将现有的[datetime]
值传递给Get-Date
的-Date
参数:
Get-Date -Date $startDate -UFormat "%Y%m%d-%h%M%S"
有更多的格式化日期的方法比使用 UFormat 更“PowerShelly”:
ToString()
方法:(Get-Date).AddHours(10).ToString("yyyyMMdd-HHmmss")
Get-Date
的 -Format 参数:$startDate = (Get-Date).AddHours(10)
Get-Date -Date $startDate -Format "yyyyMMdd-HHmmss"
-f
格式运算符:'{0:yyyyMMdd-HHmmss}' -f (Get-Date).AddHours(10)
-UFormat 开关属于 Get-Date commandlet。 所以你会使用这个语法:
Get-Date ($startDate) -UFormat "%Y%m%d" 例如。
而且,如果我在您的日期格式字符串中解释您“真正”想要的内容,那么您在小时标记上的大小写不正确。
"%Y%m%d-%h%M%S" 应该是
获取日期($startDate)-UFormat %Y%m%d-%H%M%S
哪个将返回:20210102-200000
这些代币——至少在我得到它们的地方——来自 TCL。
Goggle tcl 时钟手册页以获取完整列表。
我通常使用 -UFormat 开关 - 我知道 TCL 令牌,不必担心 Microsoft 日期字符串令牌中使用的 escaping 个字母。
获取日期($startDate)-格式“Hello-yyyyMMdd-HHmmss-World”
返回:20ello-20210102-200000-Worl2 因为 H 和 d 是标记 - 需要转义 \H \d
然而
获取日期($startDate)-UFormat "Hello-%Y%m%d-%H%M%S-World"
返回:Hello-20210102-200000-World
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.