日付

datetimeパッケージを使います。

定数、クラス

定数
datetime.MINYEAR
datetime.MAXYEAR
datetime.UTCdatetime.timezone.utc
datetime.dateyear,month,dayの属性を持つクラス
datetime.timehour,minute,second,microsecond,tzinfoの属性を持つクラス
datetime.timedelata二つの時間単位の差分を返す。単位はdate,time,datetime μ秒
datetime.tzinfo時間ゾーン情報を扱うオブジェクトのベースになる抽象クラス
datetime.timezonetzinfoの実装クラス

Dateオブジェクト

関数処理
date.today()現在のローカル時間を返す
date.fromtimestamp()POSIXタイムスタンプに一致するローカル時間を返す。
date.fromisoformat()ISO8601形式の日付文字列を返す。(YYYY-DDDD)
date.fromisocalendar() ISOカレンダー形式に一致する日付を返す。
date.min
date.max
date.resolution
date.year
date.month
date.day
date.replace()パラメータで指定した日付要素を変更する。
date.timetuple()time.struct_timeを返す。
date.toordinal()グレゴリオ暦を返す。
date.weekday()週の曜日を数値で返す。月曜を1、日曜を6
date.isoweekday()週の曜日を数値で返す。月曜を0、日曜を7
date.isocalendar()year,week,weekdayのtuple形式で返す。
date.isoformat()ISO8601形式の日付文字列を返す。YYYY-MM-DD
from datetime import date
date(2022,12,1).isoformat()
'2022-12-01'

関数
date.__str__()str(d)
date.ctime()日付を文字列で返す
date.__format__(format)
>>> from datetime import date
>>> d = date.fromordinal(730920) # 730920th day after 1. 1. 0001 >>> d
datetime.date(2002, 3, 11)
>>> # Methods related to formatting string output >>> d.isoformat()
'2002-03-11'
>>> d.strftime("%d/%m/%y")
'11/03/02'
>>> d.strftime("%A %d. %B %Y") 'Monday 11. March 2002'
>>> d.ctime()
'Mon Mar 11 00:00:00 2002'

datetimeオブジェクト

関数処理
datetime.datetime()MINYEAR <= year <= MAXYEAR
1 <= month <= 12
1 <= day <= number of days in the given month and year,
0 <= hour < 24,
0 <= minute < 60
0 <= second < 60
0 <= microsecond < 1000000
datetime.today()現在のローカル時間を返す。
datetime.now()現在のローカル日付と時間を返す。
datetime.utcnow()現在のUTC時間と日付を返す。
datetime.fromtimestamp()POSIXタイムスタンプに一致するローカル時間と日付を返す。
datetime.fromordinal()グレゴリオ暦に一致するdatetimeを返す。
datetime.combine()新しいdatetimeオブジェクトを返す。
d = datetime.combine(d.date(),d.time(),d.tzinfo)
datetime.fromisoformat()ISO8601形式のdatetimeを返す。
datetime.fromisocalendar()year,week,dayで指定されたISOカレンダーに一致するdatetimeを返す。
datetime.strptime(string,format)文字列で指定した日付をフォーマットで指定された形式のdatetimeで返す。
datetime.mindatetime(MAXYEAR,12,31,23,59,999999,tzinfo=None)
datetime.resolutiontimedelta(microseconds=1)
datetime.yearMINYEAR = MAXYEAR
datetime.month1-12
datetime.hourrange(24)
datetime.minuterange(60)
datetime.secondrange(60)
datetime.microsecondrange(1000000)
datetime.tzinfodatetimeコンストラクタに渡されるtzinfo引数
datetime.fold
datetime.date()dateオブジェクト
datetime.time()timeオブジェクトを返す。tzinfoはNone.
datetime.timez()tzinfoを含めたtimeオブジェクトを返す。
datetime.astimezone()tz属性で指定した新しいdatetimeを返す。
datetime.utcoffset()tzinfoはNone
self.tzinfo.utcoffset(self)
datetime.dst()tzinfoがNoneの場合、Noneを返す。それ以外、self.tzinfo.dst(self)
datetime.tzname()tzinfoがNoneのとき、Noneを返す。それ以外、self.tzinfo.tzname(self)
datetime.timetuple()time.struct_timを返す。
datetime.utctimetuple()tm_isdstが0にせえていさえる以外はdatetime.timetuple()と同じ。
datetime.toordinal()グレゴリオ暦を返す。
datetime.timestamp()datetimeインスタンスに一致するPOSIXタイムスタンプを返す。
datetime.weekday()曜日を数値で返す。月曜が0、日曜が6
datetime.isoweekday()曜日を数値で返す。月曜が1、日曜が7
datetime.isocalendar()year,week,weekdayをtuple形式で返す。
datetime.isoformat()ISO8601形式の日付と時間の文字列を返す。YYYY-MM-DD HH:MM:SS
datetime.__str__()str(d)
datetime.ctime()関連する時間と日付の文字列を返す。
datetime.strftime(format)フォーマットされた時間と日付の文字列を返す。
datetime.__format__(format)datetime.strftime()と同じ。

timeオブジェクト

 タイム

関数処理
time.mintime(0,0,0,0)
time.maxtime(23,59,59,999999)
time.resolutiontimedelta(microseconds=1)
time.hourraneg(24)
time.minuterange(60)
time.secondrange(60)
time.microsecondrange(1000000)
time.tzinfotimeコンストラクタのtzinfoに渡される。
time.fold[0,1]
time.replace()引数でしてされた要素に変更する
time.isoformat()ISO8601形式の文字列を返す。 HH:MM:SS
time.__str__()str(t) t.isoformat()
time.strftime(format)formatで指定された形式の時間文字列を返す。
time.utcoffset()tzinfoがNoneの場合、Noneを返す。それ以外はself.tzinfo.utcoffset(None)を返す。
time.dst()tzinfoがNoneの場合、Noneを返す。それ以外はself.tzinfo.dst(None)を返す。
time.tzname()tzinfoがNoneの場合、Noneを返す。それ以外はself.tzinfo.tzname(None)を返す。

tzinfoオブジェクト

関数処理
tzinfo.utcoffset(dst)UTCからローカル時間のオフセットを返す。
tzinfo.dst(dst)DST時間を返す。
tzinfo.tzname()datetimeオブジェクトに一致するゾーン名を返す。
tzinfo.fromutc()デフォルトのdatetime.asctiezone()関数を呼び出す。

  

timezoneオブジェクト

関数処理
datetime.timezone(offset)ローカル時間とUTCの差分をoffset、引数をtimedeltaオブジェクトとして指定しなければならない。
timezone.utcoffset(dt)timezoneインスタンスが作られた時に固定値として指定します。
timezone.tzname(dt)timezoneインスタンスが作られるときに固定値として指定されます。
timezone.dst(dt)常にNone.
timezone.fromutc(dt)dt+offsetを返す。
timezone(timedelta(0))

現在の日時をUNIX time で取得する

import datetime
now = datetime.datetime.now()

n 日前の日付を取得する

デルタ時間(差分) days=xx : xx日(一日 * xx)のデルタ時間

now = datetime.datetime.now()
d = now - datetime.timedelta(days=N_days)
date = d.strtime("%Y-%m-%d")