Closed6
Python3_datetimeモジュール, timeモジュール, IANAゾーンデータベース
Python実践レシピより
Python3エンジニア認定実践試験メモ
dateオブジェクト
main.py
from datetime import date
# dateオブジェクト
my_date = date(1945, 8, 15)
print(my_date)
# 1945-08-15
print(my_date.year, my_date.month, my_date.day, my_date.weekday())
# 1945 8 15 2
# ISO
print(my_date.isoformat())
# 1945-08-15
print(date.fromisoformat("1945-08-15"))
# 1945-08-15
# Format
print(my_date.strftime("%Y/%m/%d"))
# 1945/08/15
print(my_date.strftime("%Y %b %d (%a)"))
# 1945 Aug 15 (Wed)
print(date.today())
# 2024-08-15
# フォーマット
print(f"終戦記念日:{my_date:%Y年%m月%d日}")
# 終戦記念日:1945年08月15日
timeオブジェクト
main.py
from datetime import time
# timeオブジェクト
print(time())
# 00:00:00
print(time(hour=15, minute=30, second=45))
# 15:30:45
my_time = time(hour=15, minute=30, second=45, microsecond=900)
print(my_time)
# 15:30:45.000900
print(my_time.hour, my_time.minute, my_time.second, my_time.microsecond)
# 15 30 45 900
print(my_time.isoformat())
# 15:30:45.000900
print(my_time.strftime("%H:%M:%S"))
# 15:30:45
datetimeオブジェクト
main.py
from datetime import datetime
# datetimeオブジェクト
my_dt = datetime.now()
print(my_dt)
# 2024-08-15 15:37:54.024181
# dateオブジェクト
my_date = my_dt.date()
print(my_date)
# 2024-08-15
# timeオブジェクト
my_time = my_dt.time()
print(my_time)
# 15:39:04.389520
# IOSフォーマット
print(my_dt.isoformat())
# 2024-08-15T15:40:39.196797
print(datetime.fromisoformat("2024-08-15T15:40:39.196797"))
# 2024-08-15 15:40:39.196797
timedeltaオブジェクト
main.py
from datetime import datetime, timedelta
# timedeltaオブジェクト
# 現在
dt_now = datetime.now()
print(dt_now)
# 2024-09-15 15:50:55.201163
# 1週間後
delta = timedelta(days=7)
dt_1week = dt_now + delta
print(dt_1week)
# 2024-09-22 15:54:50.995689
# 2週間後
delta = timedelta(days=7)
dt_2week = dt_now + delta * 2
print(dt_2week)
# 2024-09-29 15:55:58.139488
# 終戦
dt_war = datetime(1945, 8, 15)
print(dt_war)
# 1945-08-15 00:00:00
# 終戦から現在までの経過日数
dt_delta = dt_now - dt_war
print(dt_delta)
# 28886 days, 15:50:55.201163
timeモジュール
main.py
import time
# UTCの現在時刻
print(time.gmtime())
# time.struct_time(
# tm_year=20xx, tm_mon=x, tm_mday=x,
# tm_hour=x, tm_min=x, tm_sec=x,
# tm_wday=x, tm_yday=x, tm_isdst=0)
# ローカルの現在時刻雨(日本)
print(time.localtime())
# time.struct_time(
# tm_year=20xx, tm_mon=x, tm_mday=x,
# tm_hour=x, tm_min=x, tm_sec=x,
# tm_wday=x, tm_yday=x, tm_isdst=0)
# フォーマット文字列
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# 20xx-xx-xx xx:xx:xx
# エポックからの秒数
print(time.time())
# 1627307806.632527
# Sleep
for i in range(5):
print(time.time())
time.sleep(0.5)
# 1627307965.210623
# 1627307965.715698
# 1627307966.2172
# 1627307966.72234
# 1627307967.225332
IANAゾーンデータベース
IANAタイムゾーンデータベースとは
InternetAssgned Numbers Authorityが管理している、
世界各地のタイムゾーン情報を収めたデータベースの事
main.py
from datetime import datetime
from zoneinfo import ZoneInfo
# 東京のZoneInfo
ASIA_TOKYO = ZoneInfo("Asia/Tokyo")
print(ASIA_TOKYO)
# Asia/Tokyo
# ロサンゼルスのZoneInfo
AMERICA_LOS = ZoneInfo("America/Los_Angeles")
print(AMERICA_LOS)
# America/Los_Angeles
# 指定日時のdatetimeオブジェクト
dt = datetime(2024, 10, 10, tzinfo=ASIA_TOKYO)
print(dt)
# 2024-10-10 00:00:00+09:0
# 東京からロサンゼルスに変更
dt = dt.astimezone(AMERICA_LOS)
print(dt)
# 2024-10-09 08:00:00-07:00
このスクラップは2ヶ月前にクローズされました