格式化日期時間字符串 Get-Date -Uformat , -format


#將字符串格式化為時間格式
$dateTimeStr '20141231T23:59:59'
$format 'yyyyMMddTHH:mm:ss'
$formatProvider [Globalization.CultureInfo] ::InvariantCulture
[datetime] ::ParseExact( $dateTimeStr , $format , $formatProvider )

 

標准的DateTime格式字符串:

d 區域性的短日期   “{0:D}” -f [DateTime] "01/23/4567"   結果: 1/23/4567

d 區域性的長日期   “{0:d}” -f [DateTime] "01/23/4567"   結果:Friday, January 23, 4567

f  組合的長日期和短時間   “{0:f}” -f [DateTime] "01/23/4567"   結果:Friday, January 23, 4567 12:00 AM

F 組合的長日期和長時間   “{0:F}” -f [DateTime] "01/23/4567"   結果:Friday, January 23, 4567 12:00:00 AM

g  合並的短日期和短時間  “{0:g}” -f [DateTime] "01/23/4567"   結果:1/23/4567 12:00 AM

G  合並的短日期和短時間  “{0:G}” -f [DateTime] "01/23/4567"   結果:1/23/4567 12:00:00 AM

M或m 區域性的月/天        “{0:M}” -f [DateTime] "01/23/4567"   結果: January 23

o  將日期格式轉化為原始的DataTime    “{0:o}” -f [DateTime] "01/23/4567"   結果: 4567-01-23T00:00:00.0000000

R或r  標准的RFC1123格式  “{0:R}” -f [DateTime] "01/23/4567"   結果:Fri, 23 Jan 4567 00:00:00 GMT

t   區域性的短時間   "{0:t}" -f [DateTime] "01/23/4567"   結果:12:00 AM

T  區域性的長時間   "{0:T}" -f [DateTime] "01/23/4567"   結果:12:00:00 AM

u  應用於UTC區域性的通用的日期格式  "{0:u}" -f [DateTime] "01/23/4567"   結果:4557-01-23 00:00:00z

U  應用於UTC區域性的通用的日期格式  "{0:U}" -f [DateTime] "01/23/4567"   結果:Friday, January 23, 4567 8:00:00 AM  本地時間轉換為UTC

Y或y  區域性的年/月   "{0:Y}" -f [DateTime] "01/23/4567"   結果:January, 4567

 
Local->UTC  DateTime.ToUniversalTime()
UTC->Local  DateTime.ToLocalTime() 

 

 

自定義格式化日期時間字符串:

$yes = (get-date).adddays(-1) 

get-date -date $yes -uformat "%Y/%m/%d"  輸出: 2014/06/23

$yes.tostring("yyyy/MM/dd") 輸出:2014/06/23或者 2014-06-23 ,與本機時間格式設置有關 (大M是minute,小m是month)

$yes.tostring("yyyy\/MM\/dd")  輸出: 2014/06/23

get-date -date $yes -format "yyyy/MM/dd" 輸出:2014/06/23或者 2014-06-23 ,與本機時間格式設置有關

get-date -date $yes -format "yyyy\/MM\/dd" 輸出: 2014/06/23

或者 

 

$getDate = Get-Date -Date '05/09/2012 1:23 PM' -Format 'dd-MM-yyyy hh:mm:ss'
使用字符串格式化(-f)運算符:
$date = [DateTime] '03/27/2021 1:19 PM';
$getDate = '{0: dd-MM-yyyy hh:mm:ss}' -f $date

[datetime]$time="17:40"
([datetime]$time).addminutes("1").tostring("HH:mm")   輸出:17:41

 

========================================================================

時間轉換(面的string長度必須要和指定的要轉換的格式長度一樣):
[datetime]::ParseExact("20141008085412", "yyyyMMddHHmmss", $null) #$null表示使用當前的Culture

自定義Culture:
new-object Globalization.CultureInfo 'en-US'

取當前Culture:
Get-Culture  , Get-UICulture


當前系統啟動時間:
[System.Management.ManagementDateTimeConverter]::ToDateTime((Get-WmiObject -Query "select LastBootUpTime from win32_operatingsystem" | Select-Object -ExpandProperty LastBootUpTime))

========================================================================

 

Format 格式:

d
顯示月份的當前日期,以 1 到 31 之間的一個數字表示,包括 1 和 31。如果日期只有一位數字 (1-9),則它顯示為一位數字。 請注意,如果“d”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標准短日期模式格式說明符。
如果“d”格式說明符與其他自定義格式說明符或者“%”字符一起傳遞,則它被解釋為自定義格式說明符。

dd
顯示月份的當前日期,以 1 到 31 之間的一個數字表示,包括 1 和 31。如果日期只有一位數字 (1-9),則將其格式化為帶有前導 0 (01-09)。 ddd 顯示指定的 DateTime 的日期部分縮寫名稱。如果未提供特定的有效格式提供程序(實現具有預期屬性的 IFormatProvider 的非空對象),則使用 DateTimeFormat 的 AbbreviatedDayNames 屬性及其與當前所使用線程關聯的當前區域性。否則,使用來自指定格式提供程序的 AbbreviatedDayNames 屬性。
dddd(外加任意數量的附加“d”字符)
顯示指定的 DateTime 的日期全名。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則使用 DateTimeFormat 的 DayNames 屬性及其與當前所使用線程關聯的當前區域性。否則,使用來自指定格式提供程序的 DayNames 屬性。

f
顯示秒部分的最高有效位。
請注意,如果“f”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為完整的(長日期 + 短時間)格式說明符。如果“f”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。

ff 顯示秒部分的兩個最高有效位。

fff 顯示秒部分的三個最高有效位。

ffff 顯示秒部分的四個最高有效位。

fffff 顯示秒部分的五個最高有效位。

ffffff 顯示秒部分的六個最高有效位。

fffffff 顯示秒部分的七個最高有效位。

F 顯示秒部分的最高有效位。如果該位為零,則不顯示任何信息。

FF 顯示秒部分的兩個最高有效位。但不顯示尾隨零(或兩個零位)。

FFF 顯示秒部分的三個最高有效位。但不顯示尾隨零(或三個零位)。

FFFF 顯示秒部分的四個最高有效位。但不顯示尾隨零(或四個零位)。

FFFFF 顯示秒部分的五個最高有效位。但不顯示尾隨零(或五個零位)。

FFFFFF 顯示秒部分的六個最高有效位。但不顯示尾隨零(或六個零位)。

FFFFFFF 顯示秒部分的七個最高有效位。但不顯示尾隨零(或七個零位)。

g 或 gg(外加任意數量的附加“g”字符)
顯示指定的 DateTime 的年代部分(例如 A.D.)。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則年代由與 DateTimeFormat 關聯的日歷及其與當前線程關聯的當前區域性確定。
請注意,如果“g”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標准常規格式說明符。如果“g”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。

h
以 1 到 12 范圍中的一個數字顯示指定的 DateTime 的小時數,該小時數表示自午夜(顯示為 12)或中午(也顯示為 12)后經過的整小時數。如果單獨使用這種格式,則無法區別某一小時是中午以前還是中午以后的時間。如果該小時是單個數字 (1-9),則它顯示為單個數字。顯示小時時不發生任何舍入。例如,DateTime 為 5:43 時返回 5。

hh, hh(外加任意數量的附加“h”字符)
以 1 到 12 范圍中的一個數字顯示指定的 DateTime 的小時數,該小時數表示自午夜(顯示為 12)或中午(也顯示為 12)后經過的整小時數。如果單獨使用這種格式,則無法區別某一小時是中午以前還是中午以后的時間。如果該小時是單個數字 (1-9),則將其格式化為前面帶有 0 (01-09)。

H
以 0 到 23 范圍中的一個數字顯示指定的 DateTime 的小時數,該小時數表示自午夜(顯示為 0)后經過的整小時數。如果該小時是單個數字 (0-9),則它顯示為單個數字。

HH, HH(外加任意數量的附加“H”字符)
以 0 到 23 范圍中的一個數字顯示指定的 DateTime 的小時數,該小時數表示自午夜(顯示為 0)后經過的整小時數。如果該小時是單個數字 (0-9),則將其格式化為前面帶有 0 (01-09)。

m
以 0 到 59 范圍中的一個數字顯示指定的 DateTime 的分鍾數,該分鍾數表示自上一小時后經過的整分鍾數。如果分鍾是一位數字 (0-9),則它顯示為一位數字。 請注意,如果“m”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標准的月日模式格式說明符。如果“m”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。

mm, mm(外加任意數量的附加“m”字符)
以 0 到 59 范圍中的一個數字顯示指定的 DateTime 的分鍾數,該分鍾數表示自上一小時后經過的整分鍾數。如果分鍾是一位數字 (0-9),則將其格式化為帶有前導 0 (01-09)。

M
顯示月份,以 1 到 12 之間(包括 1 和 12)的一個數字表示。如果月份是一位數字 (1-9),則它顯示為一位數字。 請注意,如果“M”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標准的月日模式格式說明符。如果“M”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。

MM
顯示月份,以 1 到 12 之間(包括 1 和 12)的一個數字表示。如果月份是一位數字 (1-9),則將其格式化為帶有前導 0 (01-09)。

MMM
顯示指定的 DateTime 的月部分縮寫名稱。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則使用 DateTimeFormat 的 AbbreviatedMonthNames 屬性及其與當前線程關聯的當前區域性。否則,使用來自指定格式提供程序的 AbbreviatedMonthNames 屬性。

MMMM
顯示指定的 DateTime 的月的全名。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則使用 DateTimeFormat 的 MonthNames 屬性及其與當前線程關聯的當前區域性。否則,使用來自指定格式提供程序的 MonthNames 屬性。

s
以 0 到 59 范圍中的一個數字顯示指定的 DateTime 的秒數,該秒數表示自上一分鍾后經過的整秒數。如果秒是一位數字 (0-9),則它僅顯示為一位數字。 請注意,如果“s”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標准的可排序日期/時間模式格式說明符。如果“s”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。

ss, ss(外加任意數量的附加“s”字符)
以 0 到 59 范圍中的一個數字顯示指定的 DateTime 的秒數,該秒數表示自上一分鍾后經過的整秒數。如果秒是一位數字 (0-9),則將其格式化為帶有前導 0 (01-09)。

t
顯示指定的 DateTime 的 A.M./P.M. 指示項的第一個字符。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則使用 DateTimeFormat 的 AMDesignator(或 PMDesignator)屬性及其與當前線程關聯的當前區域性。否則,使用
來自指定 IFormatProvider 的 AMDesignator(或 PMDesignator)屬性。如果對於指定的 DateTime 所經過的總整小時數小於 12,則使用 AMDesignator。否則,使用 PMDesignator。 請注意,如果“t”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標准的長時間模式格式說明符。如果“t”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。

tt, tt(外加任意數量的附加“t”字符)
顯示指定的 DateTime 的 A.M./P.M. 指示項。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則使用 DateTimeFormat 的 AMDesignator(或 PMDesignator)屬性及其與當前線程關聯的當前區域性。否則,使用來自指定 IFormatProvider 的 AMDesignator(或 PMDesignator)屬性。如果對於指定的 DateTime 所經過的總整小時數小於 12,則使用 AMDesignator。否則,使用 PMDesignator。

y
最多用兩位數字顯示指定的 DateTime 的年份。忽略年的前兩位數字。如果年份是一位數字 (1-9),則它顯示為一位數字。
請注意,如果“y”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標准短日期模式格式說明符。如果“y”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。

yy
最多用兩位數字顯示指定的 DateTime 的年份。忽略年的前兩位數字。如果年份是一位數字 (1-9),則將其格式化為帶有前導 0 (01-09)。

yyyy 顯示指定的 DateTime 的年份部分(包括紀元)。如果年份長度小於四位,則按需要在前面追加零以使顯示的年份長度達到四位。

z
僅以整小時數為單位顯示系統當前時區的時區偏移量。偏移量總顯示為帶有前導符號(零顯示為“+0”),指示早於格林威治時間 (+) 或遲於格林威治時間 (-) 的小時數。值的范圍是 -12 到 +13。如果偏移量為一位數 (0-9),則將其顯示為帶有合適前導符號的一位數。時區設置以 +X 或 –X 的形式指定,其中 X 是相對於 GMT 的小時偏差。顯示的偏差受夏時制的影響。

zz
僅以整小時數為單位顯示系統當前時區的時區偏移量。偏移量總顯示為帶有前導或尾隨符號(零顯示為“+00”),指示早於格林威治時間 (+) 或遲於格林威治時間 (-) 的小時數。值范圍為 -12 到 +13。如果偏移量為一位數 (0-9),則將其格式化為前面帶有 0 (01-09) 並帶有適當的前導符號。時區設置以 +X 或 –X 的形式指定,其中 X 是相對於 GMT 的小時偏差。顯示的偏差受夏時制的影響。

zzz, zzz(外加任意數量的附加“z”字符)
以小時和分鍾為單位顯示系統當前時區的時區偏移量。偏移量總是顯示為帶有前導或尾隨符號(零顯示為“+00:00”),指示早於格林威治時間 (+) 或遲於格林威治時間 (-) 的小時數。值范圍為 -12:00 到 +13:00。如果偏移量為一位數 (0-9),則將其格式化為前面帶有 0 (01-09) 並帶有適當的前導符號。時區設置以 +X 或 –X 的形式指定,其中 X 是相對於 GMT 的小時偏差。顯示的偏差受夏時制的影響。


: 時間分隔符。

/ 日期分隔符。

" 帶引號的字符串。顯示轉義符 (/) 之后兩個引號之間的任何字符串的文本值。

' 帶引號的字符串。顯示兩個“'”字符之間的任何字符串的文本值。

%c 其中 c 既是標准格式說明符又是自定義格式說明符,顯示與格式說明符關聯的自定義格式模式。
請注意,如果格式說明符作為單個字符來單獨使用,它將被解釋成標准格式說明符。只有包含兩個或更多字符的格式說明符被解釋為自定義格式說明符。說明符可以被同時定義為標准和自定義格式說明符,要顯示此種說明符的自定義格式,請在說明符之前加“%”符號。

\c 其中 c 是任意字符,轉義符將下一個字符顯示為文本。在此上下文中,轉義符不能用於創建轉義序列(如“\n”表示換行)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM