我正在尝试对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
错误。有没有人能解释一下如何使这种格式化起作用?
谢谢,
3条答案
按热度按时间8fsztsew1#
与使用UFormat相比,有更多使用PowerShelly的方法可以格式化日期:
1.使用.Net
ToString()
方法:1.使用
Get-Date
的-Format参数:1.或使用
-f
运算符:i5desfxk2#
您可以将现有的
[datetime]
值传递给Get-Date
的-Date
参数:uyto3xhc3#
-UFormat开关属于Get-Date命令集。因此,您将使用以下语法:
Get-Date($startDate)-例如UFormat“%Y%m%d”。
如果我解释的是您在日期格式字符串中“真正”想要的内容,那么您的小时记号的大小写不正确。
“%Y%m%d-%h%M%S”应为
Get-Date($startDate)-UFormat%Y%m%d-%H%M%S
返回电话:20210102-200000
这些代币--至少我是从那里买的--来自TCL。
查看完整列表,请查看TCL时钟手册页面。
我通常使用-UFormat开关-我知道TCL标记,不必担心转义Microsoft日期字符串标记中使用的字母。
Get-Date($startDate)-格式“Hello-yyyyMMdd-HHmmss-World”
返回:20ello-20210102-200000-Worl2,因为H和d是标记,需要进行转义\H\d
鉴于
Get-Date($startDate)-UFormat“Hello-%Y%m%d-%H%M%S-World”
退货:HELLO-20210102-200000-世界