如何格式化 DateTime 在 PowerShell

我可以格式化cmdlet
https://technet.microsoft.com/ ... .aspx
没问题:


$date = Get-Date -format "yyyyMMdd"


但如果我有
https://msdn.microsoft.com/en- ... .aspx
在一个变量中,如何格式化它? 以下声明


$dateStr = $date -format "yyyMMdd"


返回此错误:

"您必须提供表达式
在信的右侧 "- f"
操作员"
已邀请:

詹大官人

赞同来自:

和一样的
https://docs.microsoft.com/en- ... rings
年 :


$DateStr = $Date.ToString/"yyyyMMdd"/


或者:


$DateStr = '{0:yyyyMMdd}' -f $Date

君笑尘

赞同来自:

这个问题有一个答案,但没有其他信息:

可变cmdlet i.

您在变量中有一个值
$Date

, 和运营商
-f

以下列形式合作:
'format string' -f values

. 在呼唤时
Get-Date -format "yyyyMMdd"


https://en.wikipedia.org/wiki/ ... mands
有一些参数。 价值 "yyyyMMdd" - 这是参数的值
Format

/尝试
help Get-Date -param Format

/.


-f

操作员

格式有很多。 看看
http://blogs.msdn.com/kathykam ... .aspx
1 和 2 . 她使用
string.Format/'format string', values'/

. 想起他
'format-string' -f values

, 因为运营商
-f

与方法非常相似
string.Format

/虽然有一些差异 /有关更多信息,请查看堆栈溢出时的问题:
https://coderoad.ru/1872146/
/.

涵秋

赞同来自:

你可能做的一件事是:


$date.ToString/"yyyyMMdd"/

董宝中

赞同来自:

非常方便 - 但可能不是太有效决策是使用成员函数
https://docs.microsoft.com/en- ... 4.7.2
,


$d = Get-Date
$d.GetDateTimeFormats//


这将显示为日期值的大字符串格式数组。 然后,您可以使用操作员选择其中一个数组元素
[]

, 例如:,


PS C:\> $d.GetDateTimeFormats//[12]
Dienstag, 29. November 2016 19.14

喜特乐

赞同来自:

简单愉快的方式 - 它是:


$time = /Get-Date/.ToString/"yyyy:MM:dd"/


或者那样


/Get-Date/.ToString/"yyyy:MM:dd"/

卫东

赞同来自:

如果您绝对需要使用该选项,请制作它
-Format

:


$dateStr = /Get-Date $date -Format "yyyMMdd"/





$dateStr = $date.toString/'yyyMMdd'/


可能它更有效.. :/

快网

赞同来自:

如果你在这里使用它 DOS:


powershell -Command /Get-Date/.ToString/'yyyy-MM-dd'/

詹大官人

赞同来自:

我需要一个时间和小的格式的变化。 这对我的目的很好:


$//get-date/.ToLocalTime///.ToString/"yyyy-MM-dd HHmmss"/


2019-08-16 215757

根据 @mklement0 在评论中,这也应该导致相同的结果:


/get-date/.ToString/"yyyy-MM-dd HHmmss"/

快网

赞同来自:

非常丰富的

, 但这是一个简短的答案:
此外
https://technet.microsoft.com/ ... .aspx
, 你有

3 简单的选择

格式化 [System.DateTime], 存储在变量中:

传递变量
https://docs.microsoft.com/en- ... -date
:
Get-Date -Format "HH:mm" $date


使用
https://msdn.microsoft.com/en- ... .aspx
toString// :
$date.ToString/"HH:mm"/


使用
https://docs.microsoft.com/en- ... tting
:
"{0:HH:mm}" -f $date

董宝中

赞同来自:

对于那些试图格式化当前日期的人

用于标题 HTTP

, 使用格式 "r" /减少 RFC1123/, 但要小心谨慎......


PS C:\Users\Me> /get-date/.toString/"r"/
Thu, 16 May 2019 09:20:13 GMT
PS C:\Users\Me> get-date -format r
Thu, 16 May 2019 09:21:01 GMT
PS C:\Users\Me> /get-date/.ToUniversalTime//.toString/"r"/
Thu, 16 May 2019 16:21:37 GMT


I.e. 不要忘记使用 "ToUniversalTime//"

要回复问题请先登录注册