1. time
class time.struct_time
@ desc: 返回的时间值序列的类型为 gmtime() 、 localtime() 和 strptime() 。它是一个带有 named tuple 接口的对象:可以通过索引和属性名访问值。 存在以下值:
@ eg:
t_struct = localtime()
for x in t_struct:
print(x)
print(t_struct.tm_zone)
print(t_struct.tm_gmtoff)
asctime([t])
@param t: struct_time 默认localtime(), 还可以传入:gmtime()则是UTC时间
@return str: 满足C的struct_time格式的时间表达式。例如:'Wed Feb 22 15:59:17 2023'
ctime([secs])
@desc: 等价于asctime(localtime(secs))
@param secs: 即ts值,默认是当前ts并用local时区显示, 没有显示时区设置,若要显示UTC的struct_time字串,则需要+/-local时区与UTC时区相差的秒数
@return str: 例如:'Wed Feb 22 15:59:17 2023'
gmtime([secs]), localtime([secs])
@param secs: 即ts值,默认是当前ts并用local时区显示, 没有显示时区设置,若要显示UTC的struct_time字串,则需要+/-local时区与UTC时区相差的秒数
@return struct_time: 例如:time.struct_time(tm_year=2023, tm_mon=2, tm_mday=22, tm_hour=8, tm_min=16, tm_sec=3, tm_wday=2, tm_yday=53, tm_isdst=0)
mktime(t)
@desc: localtime()的反函数。注意:gmtime没有反函数,需要人工转换
@param t: struct_time
@return secs: 返回(ts +/- 时区的秒数)
@eg: time.mktime(time.gmtime(0)) ==> -28800.0
time.sleep(secs)
@param secs: 秒为单位的休眠时间,浮点数
time.strftime(format[, t])
@desc: 转换一个元组或 struct_time 表示的由 gmtime() 或 localtime() 返回的时间到由 format 参数指定的字符串。如果未提供 t ,则使用由 localtime() 返回的当前时间。 format 必须是一个字符串。如果 t 中的任何字段超出允许范围,则引发 ValueError 。
@param format: 自定义格式化字符串
@param t: gmtime([secs])或localtime([secs])。默认localtime() struct_time结构。
@return str: 自定义format的格式化时间字符串表达式.
@eg: time.strftime("%Y-%m_%d %H:%M:%S") ==> '2023-02_22 17:13:37' 获得北京时间的自定义字符串格式
time.time()
@desc: 获取单位为秒的浮点数ts值
@return 数值: 单位为秒的浮点数ts值
@eg: print(time.time()) ==》 1677058737.7526665
2. datetime
datetime模块内的类继承关系:
timedelta
tzinfo
timezone
time
date
datetime
2.1 class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
@desc: timedelta 对象表示两个 date 或者 time 的时间间隔
@return: 返回一个timedelta对象
@eg: 定义一个3天,1小时,30秒的timedelta对象:timedelta(days = 3, seconds=30, hours=1) ==> datetime.timedelta(days=3, seconds=3630)
2.1.1 timedelta.total_seconds()
@desc: 获取timedelta对象代表的秒数
@return 值: 偏移量代表的秒数
@eg: timedelta(seconds=30, hours=1).total_seconds() ==> 3630.0
2.2 class datetime.date(year, month, day)
@desc: 代表一个理想化历法中的日期(年、月和日),即当今的格列高利历向前后两个方向无限延伸
@param year, month, day:
@return : 一个datetime.date的类对象
@eg: date(2023, 2, 22) ==> datetime.date(2023, 2, 22)
2.2.1 classmethod date.today()
@desc: 类方法。返回当前的本地日期。
@eg: date.today() ==> datetime.date(2023, 2, 22) 等价于 date.fromtimestamp(time.time())
2.2.2 classmethod date.fromtimestamp(timestamp)
@desc: 类方法。返回对应于 POSIX 时间戳的当地时间,例如 time.time() 返回的就是时间戳。
@param timestamp:
@eg: date.fromtimestamp(time.time()) ==》 datetime.date(2023, 2, 22)
2.2.3 classmethod date.fromisoformat(date_string)
@desc: 返回一个对应于以 YYYY-MM-DD 格式给出的 date_string 的 date 对象
@param date_string: ISO标准日期格式化字符串, 只支持 YYYY-MM-DD 格式
@eg: date.fromisoformat('2019-12-04') ==> datetime.date(2019, 12, 4)
2.2.4 date_obj.replace(year=self.year, month=self.month, day=self.day)
@desc: 生成一个新date,原date不变,新date在旧的上面进行改动
@param : 想要被修改的字段
@return : 一个新date对象
@eg:
d_obj = date(2023, 2, 22)
new_obj = d_obj.replace(month=1)
print(d_obj, new_obj) ==> 2023-02-22 2023-01-22
2.2.5 date_obj.timetuple()
@desc: date转struct_time
@return struct_time:
@eg:
d_t = d_obj.timetuple()
for one in d_t:
print(one)
print(d_t.tm_gmtoff, d_t.tm_zone)
2.2.6 date_obj.isoformat()
@desc: date转标准iso日期字符串
2.2.7 date_obj.strftime(format)
@desc: 返回一个由显式格式字符串所指明的代表日期的字符串。
@eg: d_obj.strftime('%Y%m%d') ==> '20230223'
2.3 class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
datatime.datetime由于有时分秒,因此要注意时区
2.3.1 classmethod datetime.today()
@desc: 返回localtime的datetime.datetime对象 <==> datetime.fromtimestamp(time.time())
2.3.2 classmethod datetime.now(tz=None)
@desc: 参数 tz 为 None 或未指定,这就类似于 today()
@param tz: 如果 tz 不为 None,它必须是 tzinfo 子类的一个实例,并且当前日期和时间将被转换到 tz 时区
2.3.3 classmethod datetime.utcnow()
2.3.4 classmethod datetime.fromtimestamp(timestamp, tz=None)
2.3.5 classmethod datetime.utcfromtimestamp(timestamp)
2.3.6 classmethod datetime.fromisoformat(date_string)
2.3.7 classmethod datetime.strptime(date_string, format)
@desc: 返回一个对应于 date_string,根据 format 进行解析得到的 datetime 对象。
2.3.8 datetime_obj.date()
@desc: 返回date对象
2.3.9 datetime_obj.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)
2.3.10 datetime_obj.astimezone(tz=None)
@desc: 用于datetime.datetime对象转换时区
2.3.11 datetime_obj.datetime.tzname()
2.3.12 datetime_obj.timestamp()
@desc: 返回ts