NIKUNIKU TECH ME

筋肉エンジニアの技術ブログ

pythonのdateutilを使って1日前の日付を取得する

Todoistというタスク管理ツールがあって、そのAPIを使い自分が使う用のメモサービスを作ろうと思っています。
機能の一つにTodoistのAPIから登録したタスクのDueDateを取得し、1日前とかにリマインドを送ってみようと考えました。

実はTodoistにはリマインド機能があるのですが、有料登録しないと使えないので、自作しようと思った次第です。
日付操作にdateutilを使ってみたメモです。

dateutilを使う

python-dateutil

pip install python-dateutil

1日前を取得してみる

TodoistのDueDateはこういう文字列になります。

'Sun 31 Jan 2016 14:59:59 +0000'

bpython起動

bpython version 0.14.2 on top of Python 2.7.5 /Users/maaaato/.virtualenvs/lab/bin/python
>>> import dateutil.parser, dateutil.relativedelta, dateutil.zoneinfo
>>> dt = dateutil.parser.parse('Sun 31 Jan 2016 14:59:59 +0000')
2016-01-31 14:59:59+00:00
>>> jst = dt.replace(tzinfo=dateutil.tz.tzutc()).astimezone(dateutil.zoneinfo.gettz("Asia/Tokyo")) // JSTに変換
>>> print jst + dateutil.relativedelta.relativedelta(days=-1) // -1日する
2016-01-30 23:59:59+09:00

dateutil便利ですね