ค้นหาเว็บไซต์

การขยายออบเจ็กต์ PowerShell DateTime


ฉันได้ทดลองใช้โมดูล PSTypeExtensionTools มากขึ้น โดยค้นหาวัตถุเพิ่มเติมที่จะปรับปรุง คุณสามารถตรวจสอบโปรเจ็กต์บน Github และติดตั้งโมดูลได้จาก PowerShell Gallery ความสนุกของฉันในปัจจุบันคือการใช้ออบเจ็กต์ DateTime โดยเฉพาะการแปลงค่าให้เป็นวัฒนธรรมอื่น เห็นได้ชัดว่าพวกเราในอเมริกาเหนือไม่ทราบวิธีจัดรูปแบบวันที่ให้ถูกต้อง แต่ตอนนี้ด้วยวิธีการสคริปต์บางอย่างที่เพิ่มเข้าไปในประเภท DateTime ฉันจึงสามารถแก้ไขการกำกับดูแลนั้นได้

วิธีจัดรูปแบบวันที่ของคุณจะถูกจัดเก็บไว้ในคำจำกัดความวัฒนธรรม

คุณสามารถรับข้อมูลสำหรับวัฒนธรรมอื่นได้โดยใช้ .NET Framework

มาจัดรูปแบบวันที่ใหม่:

ฉันสามารถใช้ตัวดำเนินการ -f และระบุรูปแบบอื่นได้

$n = Get-Date
"{0:$([cultureinfo]::GetCultureInfo("en-gb").datetimeformat.fulldatetimepattern)}" -f $n

นี่ไม่ใช่เรื่องยากโดยเฉพาะ แต่ต้องพิมพ์เยอะมาก ดังนั้นเรามาทำให้ส่วนขยายนี้เป็นประเภท DateTime ด้วยคำสั่ง Add-PSTypeExtension ของฉัน

$sb = { 
Param ([string]$culture)

"{0:$([cultureinfo]::GetCultureInfo("$culture").DateTimeFormat.fulldatetimepattern)}" -f $this
}

Add-PSTypeExtension -TypeName System.Datetime -MemberType ScriptMethod -MemberName ConvertCulture -Value $sb

ตอนนี้มันง่ายกว่ามาก สิ่งที่ฉันต้องทำคือเรียกใช้เมธอดสคริปต์และจัดเตรียมวัฒนธรรม

ฉันยังเพิ่มวิธีการแปลงเป็นรูปแบบวันที่แบบสั้นด้วย

$sb2 = {
Param ([string]$culture)

"{0:$([cultureinfo]::GetCultureInfo("$culture").DateTimeFormat.ShortDatePattern)}" -f $this

}

Add-PSTypeExtension -TypeName System.Datetime -MemberType ScriptMethod -MemberName ConvertShortDate -Value $sb2

คุณก็ใช้มันแบบเดียวกัน

ฉันไม่แน่ใจว่าวิธีการเหล่านี้มีประโยชน์ในทางปฏิบัติเป็นพิเศษ แต่วิธีการเหล่านี้สนุกกับการเล่นและช่วยแสดงให้เห็นถึงคุณค่าในการขยายคำจำกัดความของประเภท ฉันหวังว่าคุณจะลองใช้โมดูล PSTypeExtenstionTools และแจ้งให้เราทราบว่าคุณคิดอย่างไร

บทความที่เกี่ยวข้อง