【Python】日付時刻・文字列・数値型データの相互変換方法|datetime・dateモジュールの基本操作入門

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ!
  • Pythonのdatetimeモジュールの使い方を知りたい
  • 日付型⇄文字列データの相互変換方法が知りたい
  • 日付型⇄数値型データの相互変換方法が知りたい
目次

【Python】datetimeモジュールとは?

datetimeとは、日付や時刻に対して様々な操作が可能なモジュールです。

datetimeモジュールを活用することで、次のような日付操作が実現できます。

  • 現在の日付を取得
  • フォーマット(例えばYYYY-MM-DD)を指定して日付を取得
  • 日付型データ同士を計算

datetimeモジュールには、3種類のクラスが存在します。

クラス名概要フォーマット例
datetime日付と時刻を取得YYYY-MM-DD HH:MM:SS
date日付を取得YYYY-MM-DD
time時刻を取得HH:MM:SS

本記事ではこの中でもdatetimeおよびdateクラスを活用したデータ型変換方法について解説します。

【Python】文字列型から日付型(datetime・date)に変換

文字列型データを日付型データに変換する方法について解説します。

文字列型→日付型(datetime)変換

文字列型データを日付型(datetime)データに変換する場合、次の方法が有効です。

from datetime import datetime

# 文字列型データ(YYYY-MM-DD HH:MM:SS)
str_type      = '2022-01-01 18:05:00'

# 日付変換(YYYY-MM-DD HH:MM:SS)
datetime_type = datetime.strptime(str_type, '%Y-%m-%d %H:%M:%S')

# 出力イメージ(datetime_type)
# 2022-01-01 18:05:00

文字列型→日付型(date)変換

文字列型データを日付型(date)データに変換する場合、次の方法が有効です。

from datetime import datetime, date

# 文字列(YYYY-MM-DD HH:MM:SS)
str_type      = '2022-01-01 18:05:00'

# 日付変換(YYYY-MM-DD HH:MM:SS)
datetime_type = datetime.strptime(str_type, '%Y-%m-%d %H:%M:%S')

# Datetime → Date変換(YYYY-MM-DD)
date_type     = date(datetime_type.year, datetime_type.month, datetime_type.day)

# 出力イメージ(date_type)
# 2022-01-01

【Python】日付型(datetime)から文字列型に変換

日付型データを文字列型データに変換する方法について解説します。

日付型→文字列型(YYYY-MM-DD HH:MM:SS)変換

日付型(datetime)データを文字列型データ(YYYY-MM-DD HH:MM:SS)に変換する場合、次の方法が有効です。

from datetime import datetime

# 本日日付 (Datetime)
today_datetime_type = datetime.today()

# 文字列変換(YYYY-MM-DD HH:MM:SS)
today_str_type      = today_datetime_type.strftime("%Y-%m-%d %H:%M:%S")

# 出力結果(today_str_type)
# 2022-12-17 06:49:02

日付型→文字列型(YYYY-MM-DD)変換

日付型(datetime)データを文字列型データ(YYYY-MM-DD)に変換する場合、次の方法が有効です。

from datetime import datetime

# 本日日付 (Datetime)
today_datetime_type = datetime.today()

# 文字列変換(YYYY-MM-DD)
today_str_type      = today_datetime_type.strftime("%Y-%m-%d")

# 出力結果(today_str_type)
# 2022-12-17

【Python】数値型から日付型(datetime・date)に変換

数値型データを日付型データに変換する方法について解説します。

数値型(YYYYMMDD)→日付型(datetime)変換

数値型(YYYYMMDD)データを日付型(datetime)データに変換する場合、次の方法が有効です。

from datetime import datetime
import pandas as pd

# 数値型データ(YYYYMMDD)
int_type = 20221227

# 日付変換(YYYY-MM-DD HH:MM:SS)
datetime_type = pd.to_datetime(str(int_type))

# 出力イメージ(datetime_type)
# 2022-12-27 00:00:00

数値型(YYYYMMDD)→日付型(date)変換

数値型(YYYYMMDD)データを日付型(date)データに変換する場合、次の方法が有効です。

from datetime import datetime, date
import pandas as pd

# 数値型データ(YYYYMMDD)
int_type = 20221227

# 日付変換(YYYY-MM-DD HH:MM:SS)
datetime_type = pd.to_datetime(str(int_type))

# 日付変換(YYYY-MM-DD)
date_type     = date(datetime_type.year, datetime_type.month, datetime_type.day)

# 出力イメージ(date_type)
# 2022-12-27

【Python】日付型(datetime)から数値型に変換

日付型データから数値型データに変換する方法について解説します。

日付型(datetime)→数値型(YYYYMMDD)変換

日付型(datetime)データを数値型(YYYYMMDD)データに変換する場合、次の方法が有効です。

from datetime import datetime

# 本日日付(YYYY-MM-DD HH:MM:SS)
today = datetime.today()

# 出力イメージ(today)
# 2022-12-17 07:53:50.453942

# 数値型変換(YYYYMMDD)
int_type = today.year * 10000 + today.month * 100 + today.day

# 出力イメージ(int_type)
# 20221217

日付型(datetime)→数値型(年・月・日・時間・分・秒)個別変換

日付型(datetime)データの数値型データ変換に際して、年・月・日・分・秒毎に抽出したい場合、次の方法が有効です。

from datetime import datetime

# 本日日付
today = datetime.today()

# 数値型変換
year   = today.year     # 年
month  = today.month    # 月
day    = today.day      # 日
hour   = today.hour     # 時間
minute = today.minute   # 分
second = today.second   # 秒

# 出力
print("年:{}".format(year))
print("月:{}".format(month))
print("日:{}".format(day))
print("時間:{}".format(hour))
print("分:{}".format(minute))
print("秒:{}".format(second))

# 出力イメージ
# 年:  2022
# 月:  12
# 日:  17
# 時間: 7
# 分:  59
# 秒:  13

【参考】Pythonを活用した様々なお役立ち情報

当サイトではPythonを活用した様々なお役立ち情報を配信しています。

Pythonでできること・仕事に応用

Pythonで実現できることを知りたい」「Pythonスキルを仕事で活かしたい」方はこちら!

Python✖️AI・機械学習

Python活用の最大メリットの1つであるAI・機械学習について詳しく知りたい方はこちら!

Python✖️投資自動化(仮想通貨)

Pythonはフィンテックとの相性が良く、その中でも仮想通貨自動売買タスクは近年注目度の高い領域です。フィンテック・投資に興味がある方はこちら!

最後に

この記事が気に入ったら
フォローしてね!

目次