最近在做一个和日记相关的小软件,要和时间打交道了.
看了好长时间,做总结如下:
import time, datetime
import sys
def time库_讲解():
时间戳="1970纪元后经过的浮点秒数,类型不是字符串"
时间格式字符串= "年:%Y 月:%m 日:%d 小时:%H 分钟:%M 秒:%S 星期%w" \
" 当年第几天:%j 当年第几周:%U 底下有详细的"
当前时间戳= time.time()
时间元组= time.localtime(时间戳)
实际时间字符串 = time.strftime(时间格式字符串, 时间元组)
时间元组 = time.strptime(实际时间字符串, 时间格式字符串)
时间戳= int(time.mktime(时间元组))
"""
时间格式字符串详解:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身"""
def datetime库的date对象():
#datetime中有不少时间对象,有的表示日期,有的表示时间,有的表示时区
#我的需求到时间就好了.
#首先,它其实就是一个三元元组
d = datetime.date(2020, 1, 14)
#有三个属性year、month、day
d.day
#用于比较日期大小的方法
# __eq__():等于,例:x.__eq__(y)
# __ge__():大于等于,例:x.__ge__(y)
# __gt__():大于,例:x.__gt__(y)
# __le__():小于等于,例:x.__le__(y)
# __lt__():小于,例:x.__lt__(y)
# __ne__():不等于,例:x.__ne__(y)
# 以上方法的返回值为:True / False
# 获取两个日期相差多少天
# 使用__sub__()
# 和__rsub__()
# 方法,其实这两个方法差不多,一个是正向操作,一个是反向操作
# __sub__():例:x.__sub__(y),相当于x - y
# __rsub__():例:x.__rsub__(y),相当于y - x
#today():返回当前日期,这是标配了
#isocalendar()方法:返回一个包含三个值的元组,元组内容为(年份,所在年的第几周,所在周的第几日)
#isoformat()方法:返回符合ISO 8601标准(YYYY-MM-DD)的日期字符串
#isoweekday()返回符合ISO标准的指定日期所在当前日期的第几日
#下面几个方法就和之前的time库结合起来了
#timetuple():该方法为了兼容time.localtime()返回一个类型为time.struct_time的数组,但时间部分的元素值为0
#fromtimestamp():根据给定的时间戳,返回一个date对象
pass
def 重点_时间偏移():
old_date=datetime.date("老年","老月","老日")
#其实就是这个对象,具体的参数ctrl自己看吧
时间偏移量=datetime.timedelta(days="时间偏移量")
#然后:
new_date=old_date+时间偏移量