naive aware
对于datetime.datetime和datetime.time类型才有aware对象
最佳实践:都先使用utc时间,之后返回给页面有要求时再转换为本地时间
datetime.datetime.now(datetime.timezone.utc)
datetime中的date部分、time部分,是理想化的表示,始终存在
timedelta代表时差,tzinfo代表时区(该类为抽象类,应使用timezone)
timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
接受的参数最终会转化为 days seconds microseconds
date
-- 类方法 --
date(year, month, day)
today
fromtimestamp
返回的是本地时间
fromordinal
fromisoformat YYYY-MM-DD
-- 对象方法 --
replace
timetuple
toordinal
weekday
isoweekday
isocalendar
isoformat YYYY-MM-DD
ctime
strftime
datetime
datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
year month day 必填
在创建时提供时区tzinfo信息的,最好只使用utc,使用其他timezone会造成问题
类方法
today now
返回本地时间 naive
now函数另可接收tz,此时返回的是aware
utcnow
返回当前的utc时间 naive
fromtimestamp(timestamp, tz=None)
返回本地时间 naive
另可接收tz,此时返回的是aware
utcfromtimestamp
返回utc时间 naive
fromordinal
combine
fromisoformat YYYY-MM-DD[*HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]]
strptime
对象方法
date
time
timetz
replace(year=self.year, month=self.month, day=self.day, hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond, tzinfo=self.tzinfo, * fold=0)
astimezone
会转换日期,如果调用者是naive,视为本地时间
网友评论