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を作りたいシンプルなケースでは、コンストラクタに年・月・日を直接渡す方法が簡潔です。用途に応じて使い分けるとよいでしょう。
-
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
-
Pythonで文字列をバイナリ(2進数)に変換する方法をわかりやすく解説
Pythonで文字列をバイナリに変換する基本の考え方Pythonで文字列をバイナリ(2進数)表現に変換するには、文字列内の各文字を1つずつ取り出し、それぞれを2進数へ変換したうえで、結果をひとつの文字列として連結します。各文字の文字コードは ord() 関数で取得でき、format() 関数に「b」フォーマット指定子を渡すことで、簡単に2進数形式へ整形できます。format() と ord() を使った変換方法最もシンプルなのが、format(ord(x), b) を使って各文字 x を2進数の文字列に変換する方法です。次の例では、文字列 hello world の各文字をスペース区切りのバイ