PythonのDatetime:時間の変換
この記事では次のように、Python datetime
モジュールを使って時間データを好きな形式やタイプに変換する方法について説明します。
- 時間を分秒に変換する
- 時間をUnixタイムスタンプint数字に変換する方法
- UTC時間に変換
- データフレームから時間に変換
- 文字列に変換
1. 時間を秒に変換する
時間を秒に変換したい場合は、 timedelta
オブジェクトの total_seconds()
メソッドを使用します。
from datetime import datetime, timedelta
# timedeltaオブジェクトを作成
td = timedelta(hours=2, minutes=30)
seconds = td.total_seconds()
print(f"合計秒数: {seconds}")
2. 時間を分に変換する
同様に、時間を分に変換するには、 total_seconds()
メソッドの結果を60で割ります。
minutes = seconds / 60
print(f"合計分: {minutes}")
3. Datetimeを整数に変換する
datetime
オブジェクトをUnixのタイムスタンプに変換するには、 timestamp()
メソッドを使用します。
timestamp = int(dt.timestamp())
print(f"Unixタイムスタンプ: {timestamp}")
4. DatetimeをUTCに変換する
datetime
オブジェクトをUTCに変換するには、 astimezone()
メソッドと pytz
ライブラリを使用します。
import pytz
utc_time = dt.astimezone(pytz.utc)
print(f"UTC時間: {utc_time}")
5. DataFrameの時間フォーマットを変更する
PandasのDataFrameの時間フォーマットを変更するには、 pd.to_datetime()
関数を使用します。
import pandas as pd
# 日付と時間のデータ
data = {'date_time': ['2023-07-07 10:30', '2023-07-08 11:45', '2023-07-09 12:50']}
df = pd.DataFrame(data)
# 文字列をdatetimeオブジェクトに変換
df['date_time'] = pd.to_datetime(df['date_time'])
print(df)
6. Datetimeを文字列に変換する
datetime
オブジェクトを文字列に変換するには、 strftime()
メソッドを使用します。
date_str = dt.strftime("%Y-%m-%d %H:%M:%S")
print(f"日付文字列: {date_str}")
結論
Pythonの datetime
モジュールは時間の変換タスクに非常に効果的です。この投稿では、時間の変換のための datetime
モジュールの機能を使用する方法を見てきました。これらの特性を利用することで、時間の変換タスクをより簡単かつ効率的に取り扱うことができます。
