LoginSignup
0
1

More than 3 years have passed since last update.

Powershellで英語の月名文字列(完全形・3文字省略形)を数字に変換

Last updated at Posted at 2020-11-06

ログの日付形式に苦しむ

「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

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1