目次
現在の時間の取得(UnixTime(エポック秒))
import time
print(time.time())
現在の日付、時間の取得(datetime型)
import datetime
print(datetime.datetime.now())
2022-10-23 21:23:57.839084
現在の日付、時間の取得 秒未満切り捨て(datetime型)
import datetime
print(datetime.datetime.today().replace(microsecond=0))
2022-10-23 21:23:57
※MySQLのDATETIMEに登録できる
現在の日付だけ取得(date型)
import datetime
print(datetime.date.today())
2022-10-23
現在の時間を文字列で取得(フォーマット)
import datetime
now = datetime.datetime.now()
print(now.strftime('%Y年%m月%d日 %H時%M分%S秒%fマイクロ秒'))
print(now.strftime('%Y/%m/%d %H:%M'))
UnixTimeをdatetimeに変換
import datetime
unixtime = 1601819295
print(datetime.datetime.fromtimestamp(unixtime))
datetimeをUnixTimeに変換
import datetime
now = datetime.datetime.now()
print(now.timestamp())
秒を時間に変換
import datetime
print(datetime.timedelta(seconds=417.417))
文字列をdatetimeに変換(str to datetime)
from datetime import datetime
date_object = datetime.strptime("2024-03-10 14:45:30", "%Y-%m-%d %H:%M:%S")
〇秒 ⇒ 〇時間〇分〇秒
s = 416403.4546
hours, tmp = divmod(s, 3600)
minutes, seconds = divmod(tmp, 60)
print(f'{int(hours)}時間{int(minutes):02}分{int(seconds):02}秒')
115時間40分03秒
divmodとは
日付の計算
日単位の計算
import datetime
from datetime import timedelta
datetime.datetime(2023, 1, 4) + timedelta(days=3)
datetime.datetime(2023, 1, 7)
月単位の計算
import datetime
from dateutil.relativedelta import relativedelta
datetime.datetime(2023, 1, 4) + relativedelta(months=1)
datetime.datetime(2023, 2, 4)
時間を秒に変換
import datetime
print(datetime.timedelta(days=4, hours=1, minutes=7).total_seconds())
処理時間の表示
import time
import datetime
start = time.time()
# 処理()
print(datetime.timedelta(seconds=time.time()-start))
関連エラー
UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: encoding error
日本語でフォーマットするとエラーになる。
import locale
locale.setlocale(locale.LC_CTYPE, 'Japanese_Japan.932') // 言語_地域.エンコーディング