标准库datetime
datetime模块:
对 日期、时间、时间戳的处理
datetime类方法:
today():返回本地时区的datetime对象
now(tz = None):返回当前时间的datetime对象,时间到微妙,如果timezone为None返回和today一样
utcnow():没有时区的当前时间
fromtimestamp(timestamp,tz=None)从一个时间戳返回一个datetime对象
datetime对象:
timestamp()返回一个到微妙的时间戳。时间戳,格林威治时间从1997年1月1号0点0分0秒到现在的秒数
构造方法:datetime.datetime(2020, 4, 6, 14, 24, 29, 782776)
year、month、day、hour、minute、second、microsecond,取datetime对象的年月日时分秒及微秒
weekday():返回星期的天,0~6
isoweekday():返回星期天,1~7
date():返回日期date对象
time():返回时间的time对象
replace():修改并返回新的时间
isocalendar():返回一个三元组(年、周数、周的天)
import datetime d1 = datetime.datetime.today() d2 = datetime.datetime.now() d3 = datetime.datetime.utcnow() #utc时区 datetime.datetime.now().timestamp() #datetime对象的时间戳 d4 = datetime.datetime.fromtimestamp(1586163018.609562)
d5 = datetime.datetime(2020, 4, 6, 16, 50, 18, 609562)
d5.weekday()#返回周几,0~6
d5.isoweekday() #返回周几iso国际标准 1~7
d5.date() 等价于datetime.datetime.now().date()
d5.replace(year=2019,month=8)
日期格式化
import datetime d3 = datetime.datetime.strptime('04/06/2020 14:38:20','%m/%d/%Y %H:%M:%S') d3.strftime("%Y/%m/%d %H:%M:%S") "{:%Y/%m/%d %H:%M:%S}".format(d3)
timedelta对象
datetime2 =datetime1 + timedelta
datetime2 = datetime1 - timedelta
timedelta = datetime 1 - datetime2
计算墙上时间:
start = datetime.datetime.now
delta = (datetime.datetime.now - start).total_seconds()
d4 = datetime.datetime.now()
d6 = datetime.timedelta(1) d5 - d6 #时间差量可进行加减 d6 = datetime.timedelta(days=365,seconds=20) #默认不写赋值则为1天,hour=1 ,weeks = 1 表示差值为365天 d5 - d6 d5 + d6 d5 + d4 #错误表达式,时间不能进行加减,
import datetime t = datetime.datetime.today() print(t) t = datetime.datetime.now() print(t) t = datetime.datetime.now().date() print(t) t = datetime.datetime.now().weekday() print(t) t = datetime.datetime.now().isoweekday() print(t) #时区 t = datetime.datetime.now(datetime.timezone(datetime.timedelta(hours=0))) #写了时区则等价于utcnow() print(t) t = datetime.datetime.utcnow() print(t) t = datetime.datetime.now(datetime.timezone(datetime.timedelta(hours=8))) print(t) t = datetime.datetime.utcnow() print(t) t = datetime.datetime.now().timestamp() #类的对象方法返回当前的时间戳 print(t)
t = datetime.datetime.fromtimestamp(1586165622.466427) #将时间戳转换成日期 print(t)
t = datetime.datetime.now()# datetime 对象 print(t.timestamp(), type(t.timestamp())) print('年', t.year, type(t.year)) print('月', t.month) print(t.weekday()) # 返回本周的第几天,周一为0 print(t.isoweekday())# 周一为 1 print(t.date()) print(t.time()) print(t.isocalendar()) #也可以直接写成 t = datetime.datetime.now().year print(t) t = datetime.datetime.now().date() print(t)
# 构造一个时间对象 print(datetime.datetime(2020, 4, 6, 16, 50, 18, 609562)) # 2020-04-06 16:50:18.609562 # 类方法: t = datetime.datetime.strptime('04/06/2020 14:38:20','%m/%d/%Y %H:%M:%S') print(t) # 2020-04-06 14:38:20 # 对象方法: t = datetime.datetime.now() print(t) timestr = t.strftime('%Y-%m-%d %H-%M-%S') print(timestr) print(type(timestr)) #timedelta对象 t = datetime.timedelta(days=20,seconds=60) print(t)