Python中时间操作
说明:以 classmethod 开头表示类方法,不以 classmethod 开头表示对象方法
datetime.timezone
class datetime.timezone(offset, name=None)
- offset需要指定一个timedelta对象,表示与UTC时间的差值,范围在
-timedelta(hours=24)
到timedelta(hours=24)
之间,注意这两个值不能取
timezone.utc
- 返回一个timezone对象,表示获取utc时区,等同于
datetime.timezone(deltatime(0))
- 这是一个类属性(准确说是一个变量),不能在后面加括号调用
datetime.datetime
class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
- year、month、day 值是必须的,tzinfo可以为None,也可以为tzinfo的一个实例
classmethod datetime.now(tz=None)
- 获取当前时间,返回一个datetime对象,默认tzinfo为None,表示本地时区,可以手动指定时区
classmethod datetime.today()
- 获取本地当前时间,相当于now(tz=None)
classmethod datetime.utcnow()
- 获取utc时区的当前时间,tzinfo为None
classmethod datetime.strptime(date_string, format)
- 将字符串解析为datetime时间,format表示date_string的格式
datetime.strftime(format)
- 返回一个字符串,由format控制格式
classmethod datetime.fromtimestamp(timestamp, tz=None)
- 将时间戳转换为datetime格式,不指定tz则为本地时区时间。
classmethod datetime.utcfromtimestamp(timestamp)
- 将时间戳转换为datetime格式的utc时区时间
datetime.timestamp()
- 返回datetime对应的时间戳
classmethod datetime.combine(date, time, tzinfo=self.tzinfo)
- 将时间、日期组成一个datetime格式的时间
datetime.year/month/day/hour/minute/second/microsecond/tzinfo
- 获取datetime的部分时间信息
datetime.date()/time()
- 获取datetime的时间或日期信息
datetime.weekday()
- 返回时间对应的星期,星期一为0,星期天为6
datetime.isoweekday()
- 以整数形式返回星期,星期一为1,星期天为7
django.utils.timezone
utc
- 获取utc时区的tzinfo实例(可以赋值给tz)
now()
- 获取当前时间,使用时区为UTC时区
get_current_timezone()
- 获取本地时区的tzinfo实例
localtime(value=None, timezone=None)
- 将带时区的datetime转换为指定时区的datetime
- value是带时区的datetime类型,默认为now()
- timezone默认为本地时区
localdate(value=None, timezone=None)
- 将带时区的datetime转换为指定时区的date
- value是带时区的datetime类型,默认为now()
- timezone默认为本地时区
is_aware(value)
- 是否有时区,value为datetime类型,tzinfo不为None返回True
is_naive(value)
- 是否无时区,和is_aware相反
make_aware(value, timezone=None, is_dst=None)
- 将无时区的datetime转换为有时区的datetime,
- value是一个没有时区的datetime类型,timezone为None则默认使用本地时区
make_naive(value, timezone=None)
- 将有时区的datetime转换为无时区的datetime
- value是一个有时区的datetime,会先把时间转换到指定时区的时间,然后去除时区信息
- timezone为None默认使用本地时区