【Python】時間操作(time,datetime)【チートシート】

python_一問一答サンプル集

現在の時間の取得(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') // 言語_地域.エンコーディング

ロケールについて

公式ドキュメント

time
datetime

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です