PowerShell:
פרסום תאריך ממחרוזת
איך לעשות:
PowerShell מקל על ניתוח תאריכים ממחרוזות באמצעות ה- Get-Date
cmdlet ותאוצת הסוג [datetime]
, אשר עובדים היטב עבור פורמטי תאריכים סטנדרטיים. עבור מחרוזות תאריך מורכבות או לא סטנדרטיות, ניתן להשתמש בשיטת .ParseExact
של [datetime]
כדי לציין את הפורמט המדויק.
שימוש ב- Get-Date
ו- [datetime]
:
# המרה פשוטה באמצעות Get-Date
$stringDate = "2023-04-01"
$date = Get-Date $stringDate
echo $date
פלט דוגמה:
Saturday, April 1, 2023 12:00:00 AM
# שימוש בתאוצת הסוג [datetime]
$stringDate = "April 1, 2023"
$date = [datetime]$stringDate
echo $date
פלט דוגמה:
Saturday, April 1, 2023 12:00:00 AM
שימוש ב- [datetime]::ParseExact
עבור פורמטים לא סטנדרטיים:
עבור פורמטים שאינם מזוהים באופן אוטומטי, ניתן להגדיר את הפורמט המדויק כדי להבטיח ניתוח נכון.
$stringDate = "01-04-2023 14:00"
$format = "dd-MM-yyyy HH:mm"
$culture = [Globalization.CultureInfo]::InvariantCulture
$date = [datetime]::ParseExact($stringDate, $format, $culture)
echo $date
פלט דוגמה:
Saturday, April 1, 2023 2:00:00 PM
שימוש בספריות של גורמים שלישיים
למרות ש-PowerShell בפני עצמו די חזק לניתוח תאריכים, עבור תרחישים מורכבים מאוד או פונקציונאליות נוספת, כדאי לחקור ספריות .NET כמו NodaTime, למרות שעבור רוב השימושים הטיפוסיים, היכולות הטבעיות של PowerShell יהיו מספיקות.
# שימוש ב-NodaTime רק כדוגמה, שימו לב שצריך להוסיף את הספריה לפרויקט שלכם
# Install-Package NodaTime -Version 3.0.5
# שימוש ב-NodaTime לניתוח תאריך
[string]$stringDate = "2023-04-01T14:00:00Z"
[NodaTime.Instant]::FromDateTimeUtc([datetime]::UtcNow)
[NodaTime.LocalDate]$localDate = [NodaTime.LocalDate]::FromDateTime([datetime]::UtcNow)
echo $localDate
הערת דוגמה: הקוד הנ"ל הוא איור מושגי. בפועל, ודאו ש-NodaTime נוסף באופן תקין לפרויקט שלכם כדי שהסוגים והשיטות יהיו זמינים.