有两种日期和时间的对象:“无知型“和”感知型“。
常量 | 描述 |
---|---|
datetime.MINYEAR | datetime.date 或者 datetime.datetime 对象允许的最小年份。 常量 MINYEAR 是 1 。 |
datetime.MAXYEAR | datetime.date或者 datetime.datetime对象允许的最大年份。 常量 MAXYEAR 是 9999。 |
object
timedelta
tzinfo
timezone
time
date
datetime
datetime.date(year,month,day)
一个理想化的无知型日期,它假设当今的公历在过去和未来永远有效。 属性: year
, month
, and day
。
类方法
date.today()
返回当地的当前日期。
date.fromtimestamp(timestamp)
将时间戳转换为日期。
实例方法
date.replace(year=self.year,month=self.month,day=self.day)
返回替换之后的日期。
date.timetuple()
将日期转换为time.struct_time
对象。
date.weekday()
返回一个整数代表星期几。0代表星期一,1代表星期二…
date.isoformat()
返回一个 ISO 8601 格式的字符串, ‘YYYY-MM-DD’。
>>> import datetime
>>> import time
>>>
>>> today = datetime.date.today()
>>> today
datetime.date(2019, 8, 20)
>>> today == datetime.date.fromtimestamp(time.time())
True
>>> today.weekday()
1
>>> today.isoformat()
'2017-08-20'
>>> today.replace(2020,2,29)
datetime.date(2020, 2, 29)
>>> today.replace(2020,2,29).timetuple()
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=60, tm_isdst=-1)
datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
一个理想化的时间,它独立于任何特定的日期,假设每天一共有 246060 秒(这里没有"闰秒"的概念)。 属性: hour
, minute
, second
, microsecond
和 tzinfo
。
datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
日期和时间的结合。属性:year
, month
, day
, hour
, minute
, second
, microsecond
, and tzinfo
。
datetime.datetime
对象是一个包含了来自datetime.date
对象和 datetime.time
对象所有信息的单一对象。 与 date
对象一样,datetime.datetime
假定当今的格列高利历向前后两个方向无限延伸;与 datetime.time 对象一样,datetime.datetime
假定每一天恰好有 3600*24 秒。
类方法
datetime.datetime.now(tz=None)
返回当前的本地 date 和 time。 如果可选参数 tz 为 None
或未指定,这就类似于 datetime.datetime.today()
。
datetime.datetime.today()
返回当前的本地 datetime,tzinfo
值为 None
。 这等价于 datetime.datetime.fromtimestamp(time.time())
。
>>> from datetime import datetime
>>> import time
>>> datetime.today()
datetime.datetime(2019, 8, 20, 20, 33, 55, 195660)
>>> datetime.now()
datetime.datetime(2019, 8, 20, 20, 34, 3, 170206)
>>> datetime.fromtimestamp(time.time())
datetime.datetime(2019, 8, 20, 20, 34, 41, 958449)
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
表示两个 datetime.date
对象或者 datetime.time
对象,或者 datetime.datetime
对象之间的时间间隔,精确到微秒。
注意:无知型和感知型之间的差别不适用于 datetime.timedelta
对象。
>>> from datetime import timedelta
>>> year = timedelta(days=365)
>>> another_year = timedelta(weeks=40, days=84, hours=23,
... minutes=50, seconds=600) # adds up to 365 days
>>> another_year
datetime.timedelta(days=365)
>>> year.total_seconds()
31536000.0
>>> year == another_year
True
>>> ten_years = 10 * year
>>> ten_years.days
3650
datetime.tzinfo
一个描述时区信息的抽象基类。用于给 datetime.datetime
类和 datetime.time
类提供自定义的时间调整概念(例如,负责时区或者夏令时)。
datetime.timezone
一个实现了 datetime.tzinfo
抽象基类的子类,用于表示相对于 世界标准时间(UTC)的偏移量。