python处理时间的有两个模块, 分别是time , datetime , calendar 

 

1> time 



print(time.gmtime())
print(time.localtime()) #当前时间 返回的是一个time.struct_time 对象
print(time.time()) #返回的是当前时间的时间戳
localtime = time.localtime()
print("tm_gmtoff={}".format(localtime.tm_gmtoff))

print("tm_hour={}".format(localtime.tm_hour))  #时

print("tm_isdst={}".format(localtime.tm_isdst)) #是否夏令时

print("tm_mday={}".format(localtime.tm_mday)) #ri

print("tm_min={}".format(localtime.tm_min)) #分

print("tm_mon={}".format(localtime.tm_mon)) #月

print("tm_sec={}".format(localtime.tm_sec)) #秒

print("tm_wday={}".format(localtime.tm_wday)) #周几

print("tm_yday={}".format(localtime.tm_yday)) #一年中的第几天

print("tm_year={}".format(localtime.tm_year)) #年

print("tm_zone={}".format(localtime.tm_zone))

ts = time.mktime(localtime) #通过给定的时间得到时间戳
print(ts)

#格式化输出时间
print(time.strftime("%Y/%m/%d",localtime)) # 返回的是时间字符串

timeStr = "2017-08-05 23:00:00"
print(time.strptime(timeStr,"%Y-%m-%d %X")) #返回的是一个time.struct_time 对象



 

2> datetime 



#在datetime 模块先有几个子模块 分别是:
#date : 处理年月日
#time : 处理时分秒,微妙
#datetime : 处理年月日,时分秒, 微妙

#分别查看一下每模块的属性和方法
print('----------------date模块--------------------')
print(dir(datetime.date))
print('----------------time模块--------------------')
print(dir(datetime.time))
print('----------------datetime模块----------------')
print(dir(datetime.datetime))

# 在这里主要看一下datetime 这个模块
from datetime import datetime

print(datetime.MINYEAR,datetime.MAXYEAR)  #最大年份和最小年份, 可以自己制定 默认说9999, 1 
datetime.MAXYEAR = 100000
print(datetime.MAXYEAR)


#查看datetime所属的类型
print(type(datetime)) #发现是一个type类型
#这里记录一下 type 和 Object 的关系
#Object 是所有父子关系(继承关系)的顶端, 所有的数据类型的父类都是它,而type是所有类型实例关系
#的顶端,所有对象都是它的实例
#可以这么理解, Object 是一个type  即Object是type的一个实例
#以上理解只是个人理解, 如果有错误的地方,请予以纠正


# 获取当前时间
currentTime = datetime.now()  #返回的是一个datetime.datetime 对象
print(currentTime) 

print(currentTime.strftime('%x %X')) #格式化输出当前时间

#获取当前时间的时间戳
print(currentTime.timestamp())

d=datetime(2017,8,6,11,52,30)

#对指定的时间进行自定义格式输出
# %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 当前时区的名称
# %% %号本身
     
print(d.strftime("%Y-%m-%d %p"))  #2017-08-06 AM  一个字符串

#显示英文格式
print(d.ctime()) #Sun Aug  6 11:52:30 2017

#显示日历 (年, 该年中的第几周, 周几)
print(d.isocalendar())  #(2017, 31, 7) 返回一个元组, 使用时需要定向取值

print(datetime.today())



 

3> calendar 



#获取某一年的日历
print(calendar.calendar(2017))

#获取某月的日历
print(calendar.month(2017, 8))

#判断某一年是否是闰年
print(calendar.isleap(2017))

#检测两个年份之间闰年的个数
print(calendar.leapdays(1990,2017))

#将日历转化为html 格式, 可以设置 年月日, 星期等
cal = calendar.HTMLCalendar(calendar.MONDAY)
print(cal)
print(cal.formatyear(2017))