日付関連の処理を簡単にするモジュールDeloreanの紹介
2013-01-26 - ⧖ 1.0 minPycoder's Weekly に関わってる @myusuf3 さんが作った Delorean が便利。
インストール
特別なことはしなくていい
$ pip install --upgrade delorean
使ってみる
とりあえずDeloreanオブジェクト生成。
>>> import delorean
>>> from datetime import datetime
>>> now = datetime .now ()
>>> d = delorean .Delorean (now , 'UTC' )
>>> d
Delorean (datetime = 2013 - 01 - 26 21 :48 :33.535728 + 00 :00 , timezone = UTC )
>>> d .date
datetime .date (2013 , 1 , 26 )
パース。
>>> delorean .parse ('14/02/03' )
Delorean (datetime = 2014 - 02 - 03 00 :00 :00 + 00 :00 , timezone = UTC )
>>> delorean .parse ('2014-05-03' )
Delorean (datetime = 2014 - 05 - 03 00 :00 :00 + 00 :00 , timezone = UTC )
過去と未来を行き来してみる。
>>> d .next_day (1 )
Delorean (datetime = 2013 - 01 - 27 21 :48 :33.535728 + 00 :00 , timezone = UTC )
>>> d .next_day (2 )
Delorean (datetime = 2013 - 01 - 28 21 :48 :33.535728 + 00 :00 , timezone = UTC )
>>> d .next_monday (5 )
Delorean (datetime = 2013 - 02 - 25 21 :48 :33.535728 + 00 :00 , timezone = UTC )
>>> d .next_friday (1 )
Delorean (datetime = 2013 - 02 - 01 21 :48 :33.535728 + 00 :00 , timezone = UTC )
>>> d .last_week ()
Delorean (datetime = 2013 - 01 - 19 21 :48 :33.535728 + 00 :00 , timezone = UTC )
>>> d .last_week (1 )
Delorean (datetime = 2013 - 01 - 19 21 :48 :33.535728 + 00 :00 , timezone = UTC )
>>> d .last_week (2 )
Delorean (datetime = 2013 - 01 - 12 21 :48 :33.535728 + 00 :00 , timezone = UTC )
>>> d .last_day ()
Delorean (datetime = 2013 - 01 - 25 21 :48 :33.535728 + 00 :00 , timezone = UTC )
>>> d .last_day (1 )
Delorean (datetime = 2013 - 01 - 25 21 :48 :33.535728 + 00 :00 , timezone = UTC )
>>> d .last_day (2 )
Delorean (datetime = 2013 - 01 - 24 21 :48 :33.535728 + 00 :00 , timezone = UTC )
>>> d .last_friday ()
Delorean (datetime = 2013 - 01 - 25 21 :48 :33.535728 + 00 :00 , timezone = UTC )
>>> d .last_friday (2 )
Delorean (datetime = 2013 - 01 - 18 21 :48 :33.535728 + 00 :00 , timezone = UTC )
ストップ。
>>> from delorean import stops
>>> for stop in stops (freq = delorean .MONTHLY , count = 3 ):
... print stop
...
Delorean (datetime = 2013 - 01 - 26 13 :25 :49 + 00 :00 , timezone = UTC )
Delorean (datetime = 2013 - 02 - 26 13 :25 :49 + 00 :00 , timezone = UTC )
Delorean (datetime = 2013 - 03 - 26 13 :25 :49 + 00 :00 , timezone = UTC )
>>>
デロリアンの名前らしく過去と未来を自由に行き来できますね。