LoginSignup
0
0

More than 1 year has passed since last update.

PowerShellでUNIX timeをあつかってみる

Posted at

PowerShelldatetimeをからUNIX timeに変換したり、Unix timeからdatetimeに変換したり。

Convert to UNIX time from Date

Get-DateコマンドレットのUFormatオプション

Get-DateコマンドレットのUFormatで出力の形式を設定する事ができ、ドキュメントには%sを指定するとSeconds elapsed since January 1, 1970 00:00:00と記載されておりUnixTime(秒)で表示してくれます。

Get-Date/UFormat/notes

Get-DateのUFormatオプションを利用して変換
# 1992年7月6日(日本時間)をUnixTimeに変換
# 今回実行している端末のタイムゾーンは`Tokyo Standard Time`なので日本時間
Get-Date -Date "1992/07/06 00:00:00" -UFormat "%s"

image.png

.NetのDateTimeOffsetを利用する

.NetのDateTimeOffsetToUnixTimeSecondsが用意されているので、こちらを利用すれば変換できます。

DateTimeOffset.ToUnixTimeSeconds メソッド

DateTimeOffsetのToUnixTimeSecondsを利用して変換
# 1992年7月6日(日本時間)をUnixTimeに変換
# 今回実行している端末のタイムゾーンは`Tokyo Standard Time`なので日本時間
$dateTime = Get-Date -Date "1992/07/06 00:00:00"

([datetimeoffset]$dateTime).ToUnixTimeSeconds()

image.png

Convert to Date from Unix Time

UnixTimeSecondsオプションを利用する(PowerShell 7.1以上)

PowerShell 7.1から Get-DateコマンドレットにUnixTimeSecondsオプションが追加されているためこのオプションを利用すればUnixTime(秒)Dateに変換してくれます。

Get-DateのUnixTimeSecondsオプションを利用して変kん
# 1992年7月6日(日本時間)をUnixTimeに変換
# 今回実行している端末のタイムゾーンは`Tokyo Standard Time`なので日本時間$unixTime = $unixTime = Get-Date -Date "1992/07/06 00:00:00" -UFormat "%s"
# UnixTimeSecondsオプションを利用して変換
Get-Date -UnixTimeSeconds $unixTime

image.png

.NetのDateTimeOffsetを利用する

.NetのDateTimeOffsetFromUnixTimeSecondsが用意されているので、こちらを利用すれば変換できます。

DateTimeOffset.FromUnixTimeSeconds(Int64) メソッド

DateTimeOffsetのFromUnixTimeSecondsを利用して変換
# 1992年7月6日(日本時間)をUnixTimeに変換
# 今回実行している端末のタイムゾーンは`Tokyo Standard Time`なので日本時間$unixTime = $unixTime = Get-Date -Date "1992/07/06 00:00:00" -UFormat "%s"

# PowerShellでunix時間変換(.NetのdatetimeoffsetのFromUnixTimeMillisecondsメソッドを利用)
[datetimeoffset]::FromUnixTimeSeconds($unixTime)

image.png

総評

PowerShellUNIX Timeを扱うには、.NetDateTimeOffSetを利用すれば便利に扱えますが。

PowerShell 7.1からはGet-DateコマンドレットにUnixTimeSecondsが追加されており、Get-DateコマンドレットだけでもUNIX Timeとの相互変換ができました。

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