誰もが一度は陥る日付処理。各種プログラミング言語における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
[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変換] も簡単に行うことが出来ます。
便利。