Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで日付(date)を日時(datetime)に変換する方法

Pythonでは、datetimeモジュールのcombine()メソッドを使うことで、日付(date)と時刻(time)を組み合わせて、新しいdatetimeオブジェクトを作成できます。timeオブジェクトが手元にない場合は、datetime.min.time()を使って最小の時刻(つまり深夜0時=真夜中)を表すtimeオブjectを取得できます。

方法1:datetime.combine() を使う

以下の例では、今日の日付と最小の時刻(0時0分0秒)を組み合わせて、datetimeオブジェクトを生成しています。

from datetime import date
from datetime import datetime

my_date = date.today()
my_time = datetime.min.time()

my_datetime = datetime.combine(my_date, my_time)
print(my_datetime)

出力

2018-01-01 00:00:00

方法2:datetimeコンストラクタに直接渡す

もうひとつの方法として、dateオブジェクトから年・月・日の値をそれぞれ取り出し、datetimeのコンストラクタに直接渡すこともできます。この場合も時刻はデフォルトで0時0分0秒に設定されます。

from datetime import date
from datetime import datetime

my_date = date.today()

my_datetime = datetime(my_date.year, my_date.month, my_date.day)
print(my_datetime)

出力

2018-01-01 00:00:00

どちらの方法を選ぶべきか

すでにtimeオブジェクトが存在する場合や、時刻を柔軟に指定したい場合はcombine()メソッドが便利です。一方、日付だけからdatetimeを作りたいシンプルなケースでは、コンストラクタに年・月・日を直接渡す方法が簡潔です。用途に応じて使い分けるとよいでしょう。

  1. Pythonで文字列から日付を抽出・解析する方法

    文字列から日付を抽出するには、まずその文字列内で日付がどのような形式(フォーマット)で表現されているかを把握しておく必要があります。基本的なアプローチとしては、正規表現(reモジュール)で日付部分を取り出し、datetime.datetime.strptime() で解析(パース)するという流れになります。例えば、文字列中に「YYYY-MM-DD」形式の日付が含まれている場合、以下のコードで抽出と解析ができます。コード例import re import datetime s = I have a meeting on 2018-12-10 in New York match = re.sea

  2. Pythonで文字列をバイナリ(2進数)に変換する方法をわかりやすく解説

    Pythonで文字列をバイナリに変換する基本の考え方Pythonで文字列をバイナリ(2進数)表現に変換するには、文字列内の各文字を1つずつ取り出し、それぞれを2進数へ変換したうえで、結果をひとつの文字列として連結します。各文字の文字コードは ord() 関数で取得でき、format() 関数に「b」フォーマット指定子を渡すことで、簡単に2進数形式へ整形できます。format() と ord() を使った変換方法最もシンプルなのが、format(ord(x), b) を使って各文字 x を2進数の文字列に変換する方法です。次の例では、文字列 hello world の各文字をスペース区切りのバイ