誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめに Vim script が無いので追加


Vim script がないので書いてみました。

[現在時刻のDateTime取得]

strftime() を使用します。

echo strftime("%Y-%m-%d %H:%M:%S")
" => 2013-06-18 00:39:26

[現在時刻のTimeStamp取得]

localtime() を使用します。

echo localtime()
" => 1371483574

[DateTime => TimeStamp変換]

残念ながら Vim script では簡単に行うことができません。
(※vital.vim を使用して簡単に行う方法は後述参照。

[TimeStamp => DateTime変換]

strftime() の第二引数に TimeStamp を渡すことでその TimeStamp で DateTime を返します。

let s:time_stamp = 1371292653
echo strftime("%Y-%m-%d %H:%M:%S", s:time_stamp)
" => 2013-06-15 19:37:33

[まとめ]

基本的には strftime() を使用してTimeStamp から DateTime に変更を行います。
strftime() に TimeStamp(第二引数)が渡されなければ現時刻が使用されます。

[おまけ]

ちなみに vital.vim には DateTime モジュールがあるのですがそれを使用すると以下の様になります。

let s:DT = vital#of('vital').import('DateTime')

" 現在時刻のDateTime取得
let s:now_time = s:DT.now()
echo s:now_time.format("%Y-%m-%d %H:%M:%S")
" => 2013-06-18 00:48:12

" 現在時刻のTimeStamp取得
echo s:now_time.unix_time()
" => 1371484092

" DateTime => TimeStamp変換
let s:time = s:DT.from_format("2013-06-15 19:37:33", "%Y-%m-%d %H:%M:%S")
echo s:time.unix_time()
" => 1371292653

" DateTime => TimeStamp変換
let s:time = s:DT.from_unix_time(1371292653)
echo s:time.format("%Y-%m-%d %H:%M:%S")
" => 2013-06-15 19:37:33


Vital.DateTime では DateTime オブジェクトを作成して、そのオブジェクトに対して様々な操作を行います。
このモジュールを使用すれば [DateTime => TimeStamp変換] も簡単に行うことが出来ます。
便利。