Python でタイムスタンプを指定した形式の日付に変換
タイムスタンプが与えられたとき、それを指定した形式の時刻に変換します。
タイムゾーンの設定に注意してください。
よく使われるフォーマットコードの説明
%Y- 4桁の年 (2024)%y- 2桁の年 (24)%m- 月 (01-12)%d- 日 (01-31)%H- 時間(24時間制) (00-23)%I- 時間(12時間制) (01-12)%M- 分 (00-59)%S- 秒 (00-59)%p- AM/PM%A- 曜日のフルネーム (Monday)%a- 曜日の短縮名 (Mon)%B- 月のフルネーム (January)%b- 月の短縮名 (Jan)
現在時刻
例 1
import time
# 現在時刻のタイムスタンプを取得
now = int(time.time())
# 他の日付形式に変換、例: "%Y-%m-%d %H:%M:%S"
timeArray = time.localtime(now)
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print(otherStyleTime)
上記のコードを実行すると、出力結果は次のようになります:
2019-05-21 18:02:49
例 2
import datetime
# 現在時刻を取得
now = datetime.datetime.now()
# 指定された形式に変換
otherStyleTime = now.strftime("%Y-%m-%d %H:%M:%S")
print(otherStyleTime)
上記のコードを実行すると、出力結果は次のようになります:
2019-05-21 18:03:48
指定タイムスタンプ
例 3
import time
timeStamp = 1557502800
timeArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print(otherStyleTime)
上記のコードを実行すると、出力結果は次のようになります:
2019-05-10 23:40:00
異なる形式の日付を出力:
例 4
import datetime
timestamp = 1710000000
dt_object = datetime.datetime.fromtimestamp(timestamp)
# 形式1: YYYY-MM-DD
print(dt_object.strftime("%Y-%m-%d")) # 出力: 2024-03-09
# 形式2: MM/DD/YYYY
print(dt_object.strftime("%m/%d/%Y")) # 出力: 03/09/2024
# 形式3: 曜日と月のフルネーム付き
print(dt_object.strftime("%A, %B %d, %Y")) # 出力: Saturday, March 09, 2024
timestamp = 1710000000
dt_object = datetime.datetime.fromtimestamp(timestamp)
# 形式1: YYYY-MM-DD
print(dt_object.strftime("%Y-%m-%d")) # 出力: 2024-03-09
# 形式2: MM/DD/YYYY
print(dt_object.strftime("%m/%d/%Y")) # 出力: 03/09/2024
# 形式3: 曜日と月のフルネーム付き
print(dt_object.strftime("%A, %B %d, %Y")) # 出力: Saturday, March 09, 2024
完全な例(タイムゾーン処理を含む):
例 5
from datetime import datetime, timezone
# ミリ秒単位のタイムスタンプ(例: JavaScript の Date.now())
timestamp_ms = 1710000000000
# 秒単位に変換し、UTC 時刻に変換
timestamp_s = timestamp_ms / 1000
dt_utc = datetime.fromtimestamp(timestamp_s, tz=timezone.utc)
# UTC 時刻の文字列にフォーマット
formatted_utc = dt_utc.strftime("%Y-%m-%d %H:%M:%S UTC")
print(formatted_utc) # 出力: 2024-03-09 00:00:00 UTC
# ローカル時刻に変換
dt_local = datetime.fromtimestamp(timestamp_s)
formatted_local = dt_local.strftime("%Y-%m-%d %H:%M:%S %Z")
print(formatted_local) # 出力はタイムゾーンに依存します。例: 2024-03-08 16:00:00 PST
# ミリ秒単位のタイムスタンプ(例: JavaScript の Date.now())
timestamp_ms = 1710000000000
# 秒単位に変換し、UTC 時刻に変換
timestamp_s = timestamp_ms / 1000
dt_utc = datetime.fromtimestamp(timestamp_s, tz=timezone.utc)
# UTC 時刻の文字列にフォーマット
formatted_utc = dt_utc.strftime("%Y-%m-%d %H:%M:%S UTC")
print(formatted_utc) # 出力: 2024-03-09 00:00:00 UTC
# ローカル時刻に変換
dt_local = datetime.fromtimestamp(timestamp_s)
formatted_local = dt_local.strftime("%Y-%m-%d %H:%M:%S %Z")
print(formatted_local) # 出力はタイムゾーンに依存します。例: 2024-03-08 16:00:00 PST
出力結果:
2024-03-09 16:00:00 UTC 2024-03-10 00:00:00その他の拡張