import calendar
h1=calendar.calendar(2020)#打印年日历
h2=calendar.month(2020,10)#打印月日历
h3=calendar.isleap(2020)#是否为闰年
print(h1)
print(h2)
print(h3)
import datetime
now=datetime.datetime.now()
print(now,type(now)) #<class 'datetime.datetime'>
# <class 'datetime.datetime'>转换为字符串
str=now.strftime('%Y-%m-%d %H:%M:%S')
print(str,type(str))#<class 'str'>
# 字符串转换为<class 'datetime.datetime'>
d = datetime.datetime.strptime(str, '%Y-%m-%d %H:%M:%S')
print(d,type(d))#<class 'datetime.datetime'>
# 时间间隔类
# datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
# timedelta类的实例,支持加、减、乘、除等操作,所得的结果也是timedelta类的实例。比如:
year = datetime.timedelta(days=365)
ten_years = year *10
nine_years = ten_years - year
print(nine_years,type(nine_years))#<class 'datetime.timedelta'>
# datetime类也支持与timedelta的加、减运算。
# datetime1 = datetime2 +/- timedelta
# timedelta = datetime1 - datetime2
d1 = datetime.datetime.strptime('2012-03-05 17:41:20', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime('2012-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')
delta = d1 - d2
print(delta,type(delta))#<class 'datetime.timedelta'>
# 今天的n天后的日期。
now = datetime.datetime.now()
delta = datetime.timedelta(days=3)
n_days = now + delta
print(n_days,type(n_days))#<class 'datetime.datetime'>
print(n_days.strftime('%Y-%m-%d %H:%M:%S'))#str
# 指定时间
dt = datetime.datetime(2015, 4, 19, 12, 20)
print(dt)
print(type(dt))
aa=dt.timestamp()#时间戳与时区无关,所以计算机存储都是存储时间戳,应为1970年1月1日都会加上时区的
print(aa)
print(datetime.datetime.fromtimestamp(aa))
# 本地时间转换为UTC时间
from datetime import datetime, timedelta, timezone
tz_utc_8 = timezone(timedelta(hours=8)) # 创建时区UTC+8:00
now = datetime.now()
dt = now.replace(tzinfo=tz_utc_8) # 强制设置为UTC+8:00
# 时区转换
# 我们可以先通过utcnow()拿到当前的UTC时间,再转换为任意时区的时间
utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)
print(utc_dt)
# astimezone()将转换时区为北京时间:
bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8)))
print(bj_dt)
# astimezone()将转换时区为东京时间:
tokyo_dt = utc_dt.astimezone(timezone(timedelta(hours=9)))
print(tokyo_dt)
# astimezone()将bj_dt转换时区为东京时间:
tokyo_dt2 = bj_dt.astimezone(timezone(timedelta(hours=9)))
print(tokyo_dt2)
import time
"""
./Datas/结构化元组和格式化字符串.png
"""
h=time.time()# 获取当前时间戳(开始为1970年1月1日伦敦时间 结束为现在)单位是秒
# time.sleep(5)#程序沉睡五秒
# 时间戳转换为结构化时间
print(h)
jiegouhua_time=time.gmtime(h)# UTC时间,与应该伦敦当前时间一致
print(jiegouhua_time,type(jiegouhua_time))#<class 'time.struct_time'>
# time.localtime(时间戳) # 当地时间。例如:在北京执行该方法,与UTC相差8小时,UTC时间+8 = 北京时间
struct_t = time.localtime(h)
print(struct_t)
#结构化时间转化为时间戳
# 结构化转时间戳
sturc = time.mktime(struct_t)
print(sturc)
sturc = time.mktime(jiegouhua_time)
print(sturc)
#把结构化时间为可视化字符串
h5=time.strftime('%Y-%m-%d %H:%M:%S',struct_t)
print(h5,type(h5))
#把可视化字符串转换为时间元组
h6=time.strptime(h5,'%Y-%m-%d %H:%M:%S')
print(h6,type(h6))
#计算程序运行时间
def runtime(funcs):
def func(*arg,**kwarg):
start_time=time.time()
print(start_time)
funcs(*arg,**kwarg)
end_time=time.time()
print(end_time)
print("程序运行时间:{}".format(end_time-start_time))
return func
@runtime#test_for_range=runtime(test_for_range)=func
#test_for_range(*arg,**kwarg)=func(*arg,**kwarg)_
def test_for_range(nums):
if type(nums)!=type(10):
nums=100
if nums<10 or nums >10**6:
nums=10**6
for i in range(nums):
if nums==i+1:
print(i)
a=test_for_range(10**6)
print(a)
网友评论