日時といっても、私の場合は「今日」の取得と文字列との変換くらいしか使わないがね
使い方
datetime
をインポートしてモジュールを使えるようにする
import datetime
now()
で現在日時を取得できる
dt = datetime.datetime.now()
取得したものはそのままprint()
できる
print(dt)
# 2018-06-14 11:22:33.444444
strftime()
で文字列にできる。
このとき書式を設定でき、例えば以下のようにすると、上記print()
時と同じになる
s = dt.strftime('%Y-%m-%d %H:%M:%S.%f')
print(s)
# 2018-06-14 11:22:33.444444
逆に文字列からdatetime
オブジェクトにする場合はstrptime()
を使う。
変換書式を指定して、それに合致すれば変換される
s = dt.strftime('%Y-%m-%d %H:%M:%S.%f')
dt2 = datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S.%f')
# dt == dt2
書式文字列の詳細はドキュメント参照
タイムゾーン
きちんとタイムゾーンまで含めて扱いたい場合は外部ライブラリに頼る。
datetimeと似たようなインタフェースで便利なラッパーみたいなpendulum
いうライブラリがある。
pip でインストール
$ pip3 install pendulum
pendulum
をインポートしてモジュールを使えるようにする
import pendulum
datetime.datetime
を pendulum
に置き換えれば、だいたいそのまま動く
dt = pendulum.now()
タイムゾーンを変更する。
in_timezone()
で現地時刻を取得できる。
dt_utc = dt.in_timezone(tz='UTC')
set()
だとその日時を現地時刻とすることになる。(時差情報だけが更新される)
dt_utc = dt.in_timezone(tz='UTC')
タイムゾーンに設定できるのは’Asia/Tokyo’みたいなやつ(IANA time zone database)
以上