datetime
modules
from datetime import datetime
from dateutil import tz
現在
now = datetime.now()
print(now)
# OUT: 2021-11-14 05:27:16.873830
timezoneを変更
now = now.astimezone(tz.gettz('Asia/Tokyo'))
print(now)
# OUT: 2021-11-14 14:27:16.873830+09:00
現在(timezone付き)
now = datetime.now(tz.gettz('Asia/Tokyo'))
print(now)
# OUT: 2021-11-14 14:28:16.824288+09:00
文字列に変換
datetime.strftime(now, "%Y-%m-%d_%H%M%S")
# OUT: '2021-11-14_052716'
文字列から変換1
time_str = '2021/11/14 14:31:23'
dt = datetime.strptime(time_str, '%Y/%m/%d %H:%M:%S')
print(dt)
# OUT: 2021-11-14 14:31:23
文字列から変換2(米国表記)
time_str2 = 'Nov 14 2021 2:35PM'
dt = datetime.strptime(time_str2,'%b %d %Y %I:%M%p')
print(dt)
# OUT: '2021-11-14 14:35:00'
文字列から変換(RFC2822形式)
date_str3= 'Sun, 14 Nov 2021 14:45:00 +0900'
dt = datetime.strptime(date_str3,'%a, %d %b %Y %H:%M:%S %z')
print(dt)
# OUT: 2021-11-14 14:45:00+09:00
timezoneの変更
print(dt.astimezone(tz.gettz("UTC")))
# OUT: 2021-11-14 05:45:00+00:00
timezoneの強制変更
from datetime import datetime, timezone
print(dt.replace(tzinfo=tz.gettz("UTC")))
# OUT: 2021-11-14 14:45:00+00:00
timezoneの削除
print(dt.replace(tzinfo=None))
# OUT: 2021-11-14 14:45:00
時間差分
from dateutil.relativedelta import relativedelta
from datetime import datetime
now = datetime.now()
one_month_ago = now - relativedelta(months=1)
print(now)
# OUT: 2021-12-08 00:04:41.047085
print(one_month_ago)
#$ OUT: 2021-11-08 00:04:41.047085
整数値を時刻表記に変換
import datetime
td = datetime.timedelta(weeks=1, days=1, hours=1, minutes=1,
seconds=1, milliseconds=1, microseconds=1)
参考リンク
ISO8601への変換
https://note.nkmk.me/python-datetime-isoformat-fromisoformat/
参考
Python で日付のフォーマットを変換する方法
https://leben.mobi/blog/python_date_format/python/
日付の表記に関するノート
https://www.kanzaki.com/docs/html/dtf.html#jp-eur
Pythonで翌日や翌月みたいな日付の計算をする
https://qiita.com/dkugi/items/8c32cc481b365c277ec2
Last updated