datetimeパッケージを使います。
定数、クラス
定数 | |
datetime.MINYEAR | |
datetime.MAXYEAR | |
datetime.UTC | datetime.timezone.utc |
datetime.date | year,month,dayの属性を持つクラス |
datetime.time | hour,minute,second,microsecond,tzinfoの属性を持つクラス |
datetime.timedelata | 二つの時間単位の差分を返す。単位はdate,time,datetime μ秒 |
datetime.tzinfo | 時間ゾーン情報を扱うオブジェクトのベースになる抽象クラス |
datetime.timezone | tzinfoの実装クラス |
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.min | datetime(MAXYEAR,12,31,23,59,999999,tzinfo=None) |
datetime.resolution | timedelta(microseconds=1) |
datetime.year | MINYEAR = MAXYEAR |
datetime.month | 1-12 |
datetime.hour | range(24) |
datetime.minute | range(60) |
datetime.second | range(60) |
datetime.microsecond | range(1000000) |
datetime.tzinfo | datetimeコンストラクタに渡される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.min | time(0,0,0,0) |
time.max | time(23,59,59,999999) |
time.resolution | timedelta(microseconds=1) |
time.hour | raneg(24) |
time.minute | range(60) |
time.second | range(60) |
time.microsecond | range(1000000) |
time.tzinfo | timeコンストラクタの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")