pythonの日時系操作まとめ
プログラミングをしていれば、日時系の操作をする機会ってかなり多いですよね?
何日前を計算したり、文字列を日時オブジェクトにしたりその逆をしたり、曜日や月末日が欲しかったり。
自分が忘れっぽいのか、この辺の操作はすぐ忘れてしまい何度もググってしまうので、自戒の念も込めてまとめておきます。
バージョンは2.6。
datetimeの加算減算
# 現在日時から1日進める datetime.datetime.now() + datetime.timedelta(1) # 現在日時から1時間戻す datetime.datetime.now() - datetime.timedelta(hours = 1)
dateをdatetimeに変換
d = datetime.date.today(2012, 12, 12) t = datetime.time(12, 12, 12) datetime.datetime.combine(d, t)
datetimeをdateに変換
dt = datetime.datetime.now() dt.date()
エポックからの経過秒数をdatetime(ローカル)に変換
utc = time.time() datetime.datetime.fromtimestamp(utc)
datetimeをエポックからの経過秒数に変換
now = datetime.datetime.now()
timetuple = datetime.datetime.timetuple(now)
int(time.mktime(timetuple))
月末日を求める
youbi, end_of_month = calendar.monthrange(year, month) datetime.date(year, month, end_of_month)
日付が属する曜日を求める
# ※曜日を表す数値はcalendarの定数として定められている(calendar.SUNDAYなど)
datetime.date.today().weekday()
日付が属する週の初日を求める
# 週の初日を日曜日と仮定 d = datetime.date.today() weekday = d.weekday() if weekday == calendar.SUNDAY: return d else: delta = datetime.timedelta(7 - (calendar.SUNDAY - weekday)) return d - delta
とりあえずこの辺で。