LoginSignup
2
2

More than 5 years have passed since last update.

日付の英語表記を取得する(Excel, VBA, PowerShell)

Posted at

概要

Excel、VBA、PowerShellそれぞれで、日付データを英語表記に書式設定する方法を確認する。

Excel、VBAの感覚でPowerShell(.NET)でやろうとしたらハマったので、その備忘録も含む。

コード

現在の日付(例:12月16日)をDec.16に書式設定する場合の例。

Excelワークシート関数

Excel
=TEXT(NOW(),"mmm.dd")

VBA

VBA
Debug.Print VBA.Format$(Date$, "mmm.dd")

PowerShell

PowerShell
[DateTime]::Now.ToString( #書式指定文字列に加えてカルチャの指定が必要
    'MMM.dd',
    [Globalization.CultureInfo]::GetCultureInfo('en-US').DateTimeFormat #米国カルチャ
)

ハマったところ

PowerShellでは既定のカルチャとして、OSのカルチャ($PSCulture, $PSUICulture)を使用するため、日本語環境だと英語表記に書式設定できない。

PS>Get-Date -Format MMM.dd
12.16

また、Get-Dateコマンドレットにはカルチャを指定するパラメータが無さそうなので、.NET Frameworkの力を借りる必要がある。

具体的にはDateTime型のToStringメソッドの以下のオーバーロードを使用する必要がある。

PS>[DateTime]::Now.ToString
string ToString(string format, System.IFormatProvider provider)

あとがき

どうせなら

PS>Get-Date -Format MMMM.dd
師走.16

みたいに書式設定されると面白いのに、と思ったり。

参考

DateTime.ToString メソッド

日時(DateTimeオブジェクト)を文字列に変換する

2
2
2

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
2
2