вот несколько другой способ сделать работу.[ ухмылка ] использует встроенный список .MonthNames
для преобразования названия месяца в число.
если вам нужно, чтобы это было культурно-инвариантным, вы можете использовать [System.Globalization.DateTimeFormatInfo]::InvariantInfo.MonthNames
вместо Get-Culture
списка.
$DateStringList = @(
'February 20'
'January 3'
'August 14'
'June 19'
)
$MonthNameList = (Get-Culture).DateTimeFormat.MonthNames
foreach ($DSL_Item in $DateStringList)
{
$MonthName, [int]$DayNumber = $DSL_Item.Split(' ')
$MonthNumber = $MonthNameList.IndexOf($MonthName) + 1
'Source date = {0}' -f $DSL_Item
'{0} is month # {1}' -f $MonthName, $MonthNumber
'Numeric date = {0:D2}/{1:D2}' -f $MonthNumber, $DayNumber
'=' * 20
}
output ...
Source date = February 20
February is month # 2
Numeric date = 02/20
====================
Source date = January 3
January is month # 1
Numeric date = 01/03
====================
Source date = August 14
August is month # 8
Numeric date = 08/14
====================
Source date = June 19
June is month # 6
Numeric date = 06/19
====================