(python==2.7, arrow==0.3.5)
- crsmithdev/arrow · GitHub
- Arrow: better dates and times for Python — Arrow 0.4.4 documentation
- Arrow - better date & time manipulation for Python : Python <-作者さんが質問に答えてる。名前の由来とか。
dateutilあるけど、arrowもいいらしい。
こっちの方がモダンっぽいらしい。
id:Voluntas師匠に教えてもらった。
>>> import arrow # 現在 >>> arw = arrow.utcnow() >>> arw <Arrow [2013-09-05T15:06:49.312975+00:00]> # 翌月(年月日を複数形で指定して増減) >>> arw.replace(months=1) <Arrow [2013-10-05T15:06:49.312975+00:00]> ## =の後に+-付けた方が分りやすいかも >>> arw.replace(months=+1) <Arrow [2013-10-05T15:06:49.312975+00:00]> # 月を指定(単数形で指定) >>> arw.replace(month=1) <Arrow [2013-01-05T15:06:49.312975+00:00]> # 年をまたいでみる >>> dec = arw.replace(month=12) >>> dec <Arrow [2013-12-05T15:06:49.312975+00:00]> >>> dec.replace(days=+33) <Arrow [2014-01-07T15:06:49.312975+00:00]> >>> arw <Arrow [2013-09-05T15:06:49.312975+00:00]> # 翌月1日 >>> arw.replace(months=+1, day=1) <Arrow [2013-10-01T15:06:49.312975+00:00]> # 翌月末日(もっとシンプルな書き方ある?) >>> arw.replace(months=2, day=1, days=-1) <Arrow [2013-10-31T15:06:49.312975+00:00]> #ちなみに days=+33 とかすると月から溢れた分が次月に追加される(dateutilは末日以上加算されない) >>> arw.replace(month=+1, days=+33) <Arrow [2013-11-07T15:06:49.312975+00:00]> # datetime >>> arw <Arrow [2013-09-05T15:06:49.312975+00:00]> >>> arw.datetime datetime.datetime(2013, 9, 5, 15, 6, 49, 312975, tzinfo=tzutc())