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 נוסף באופן תקין לפרויקט שלכם כדי שהסוגים והשיטות יהיו זמינים.