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

PowerShell แปลงสตริงเป็นวันที่และเวลา


บ่อยครั้งในขณะที่ทำงานกับการดำเนินการตาม DateTime ปัญหาทั่วไปที่เราเผชิญในการแปลงสตริงเป็น DateTime ใน PowerShell และ DateTime เป็นสตริงใน PowerShell

ในบทความนี้ ฉันจะอธิบายวิธีต่างๆ ในการแปลงสตริงเป็นวันที่และเวลาใน PowerShell

คุณสามารถใช้เมธอด ParseExact ของออบเจ็กต์ DateTime หรือ ส่งสตริงเป็น DateTime เพื่อแปลงสตริงเป็นรูปแบบ DateTime

แปลงสตริงเป็น DateTime โดยใช้ ParseExact

คลาส DateTime มีเมธอด ParseExact ซึ่งแปลงการแสดงสตริงของ DateTime เป็น DateTime โดยใช้รูปแบบวันที่ที่ระบุ

ลองพิจารณาตัวแปรสตริงที่มีการแสดงสตริงของ DateTime การใช้ ParseExact() วิธีการจะ แปลงสตริงเป็นรูปแบบวันที่และเวลา ใน PowerShell

# Using Datetime ParseExact method to convert string to datetime

$strDateTime = '06/08/2021'
[Datetime]::ParseExact($strDateTime, 'dd/MM/yyyy', $null)

ในสคริปต์ PowerShell ข้างต้น $strDateTime ตัวแปรมีรูปแบบ DateTime

ใช้เมธอด ParseExact ของ DateTime นำสตริงเป็นอินพุต รูปแบบ DateTime และข้อมูลรูปแบบเฉพาะวัฒนธรรม และแปลงสตริงเป็น DateTime

ผลลัพธ์ของสคริปต์ด้านบนใน PowerShell เพื่อแปลงสตริงเป็นรูปแบบ DateTime ดังต่อไปนี้

PS C:\> # Using Datetime ParseExact method to convert string to datetime

$strDateTime = '06/08/2021'
[Datetime]::ParseExact($strDateTime, 'dd/MM/yyyy', $null)


06 August 2021 00:00:00



PS C:\> 

เช่นเดียวกับในผลลัพธ์ข้างต้น ParseExact จะแปลงรูปแบบสตริง DateTime เป็นรูปแบบ dd/MM/yyyy DateTime

เคล็ดลับเด็ด: วิธีสร้างสตริงหลายบรรทัดใน PowerShell!

แปลงสตริงเป็น Datetime โดยใช้ Cast

คุณสามารถส่งเพื่อแปลงสตริงเป็นรูปแบบ DateTime ใน PowerShell สตริงการส่งแปลงเป็นรูปแบบ DateTime

ลองพิจารณาตัวอย่างด้านล่างเพื่อแปลงสตริงเป็น DateTime โดยใช้การส่ง

# Using cast string to datetime using DateTime

$strDateTime = "2021-07-02"
[DateTime]$strDateTime

สคริปต์ PowerShell ข้างต้น $strDateTime เก็บการแสดงสตริงของรูปแบบ DateTime

การใช้ [DateTime]string ทำให้คุณสามารถแปลงสตริงเป็นรูปแบบ DateTime ได้

เคล็ดลับเด็ด: วิธีใช้ Get-Date ใน PowerShell เพื่อแปลงวันที่เป็นสตริง!

ผลลัพธ์ของสตริงแปลงด้านบนเป็นรูปแบบ DateTime โดยใช้การส่งดังนี้

PS C:\> # Using Datetime ParseExact method to convert string to datetime

$strDateTime = '06/08/2021'
[Datetime]::ParseExact($strDateTime, 'dd/MM/yyyy', $null)


06 August 2021 00:00:00



PS C:\> 

คุณสามารถจัดเก็บสตริงที่แปลงแล้วเป็นรูปแบบวันที่ DateTime ในตัวแปรและใช้การดำเนินการ DateTime ดังต่อไปนี้

# Using cast string to datetime using DateTime

$strDateTime = "2021-07-02"
$convertDate = [DateTime]$strDateTime

# Print variable datatype
$convertDate.GetType()

# Convert datetime to dd-mm-yyyy datetime format
'{0:dd-MM-yyyy}' -f $convertDate

# Convert datetime to mm-dd-yyyy datetime format
'{0:MM-dd-yyyy}' -f $convertDate

# Convert datetime to yyyy-mmm-dd datetime format
'{0:yyyy-MMM-dd}' -f $convertDate

ในสคริปต์ PowerShell ข้างต้น อันดับแรกจะแปลงสตริงเป็นรูปแบบ DateTime และจัดเก็บค่า DateTime ในตัวแปร $convertDate

ตัวแปร $convertDate มีประเภทข้อมูล DateTime ให้ใช้วิธี GetType() เพื่อรับประเภทข้อมูลของตัวแปร

เคล็ดลับเด็ด: วิธีรันสคริปต์ด้วยพารามิเตอร์ noprofile ใน PowerShell!

เมื่อคุณมีตัวแปร DateTime แล้ว คุณสามารถดำเนินการ DateTime ชนิดใดก็ได้ เช่น พิมพ์ DateTime ในรูปแบบ DateTime ต่างๆ เช่น dd-mm-yyyy หรือ mm-dd-yyyy หรือรูปแบบวันที่และเวลาอื่นๆ ที่ถูกต้อง

ผลลัพธ์ของสคริปต์ PowerShell ข้างต้นดังต่อไปนี้

IsPublic IsSerial Name              BaseType                                                         
-------- -------- ----              --------                                                         
True     True     DateTime         System.ValueType
                                                 
02-07-2021
07-02-2021
2021-Jul-02

เคล็ดลับเด็ด: วิธีสร้างความคิดเห็นแบบหลายบรรทัดใน PowerShell!

บทสรุป

ฉันหวังว่าบทความข้างต้นเกี่ยวกับการแปลงสตริงเป็นรูปแบบ DateTime โดยใช้ PowerShell จะเป็นประโยชน์กับคุณในขณะที่ดำเนินการ DateTime

ใช้วิธี DateTime ParseExact() หรือ ส่งเป็นรูปแบบ Datetime เพื่อแปลงสตริงเป็น DateTime

คุณสามารถค้นหาหัวข้อเพิ่มเติมเกี่ยวกับคำสั่ง PowerShell Active Directory และพื้นฐาน PowerShell ได้ในหน้าแรกของ ShellGeek

เนื้อหาที่แนะนำ

การแปลงเวลายุค PowerShell และ DateTime

PowerShell รับวันที่ลบ 1 วัน

PowerShell เปรียบเทียบวันที่

PowerShell แปลง DateTime เป็นสตริง

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