簡體   English   中英

將 UFormat 應用於 System.DateTime 變量

[英]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”:

  1. 使用.Net ToString()方法:
(Get-Date).AddHours(10).ToString("yyyyMMdd-HHmmss")
  1. 使用Get-Date的 -Format 參數:
$startDate = (Get-Date).AddHours(10)
Get-Date -Date $startDate -Format "yyyyMMdd-HHmmss"
  1. 或者使用-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM