###ログの日付形式に苦しむ
「yyyymmdd」ではなく「Nov 5」なんて出力のログを見て、困る。日が数字1文字の時はスペース2つ入ってるし。
この、英語の月名文字列を数字にサクッと変換したい。
検索すりゃあ、例文なんかサクッと見つかるだろうと思っていたが、ない。
Three Letters Month Name Change Convert to Number Get-Date Datetime
英語 月名 短縮 省略 数字に 変換
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
…などなど、いろいろ検索した。それっぽいのはあるけど、最適なやつは見つからない。
己の検索力と知識の無さを呪う。
###組み合わせてみた
呪いながら、組み合わせてみたら「こんな感じかな」というのが一応できたので、メモ。
$US = New-Object System.Globalization.CultureInfo("en-US")
# 3文字省略形月名の場合
$MonthName = "Aug"
$NameToNum = [Datetime]::ParseExact($MonthName, "MMM", $US)
# 完全月名の場合
# $MonthName = "August"
# $NameToNum = [Datetime]::ParseExact($MonthName, "MMMMM", $US)
Get-Date $NameToNum -Format "MM"
# 08
・・・ニーズないし簡単だから誰も残してくれてないのかな。
・・・「3文字省略形英語月名」の正式名称ってないのかな。
参考)
文字列を日時型(DateTime)に変換する方法
Powershell Get-Date 英語の月名を表示
Converting date time format in PowerShell