您现在的位置是:网站首页>>Python>>python
Python time模块 和datetime模块 详解
发布时间:2018-11-01 17:11:42作者:wangjian浏览量:626点赞量:2
一:time模块
time模块中时间表现的格式主要有三种:
a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
b、struct_time时间元组,共有九个元素组。
c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。
时间转化图:
实例:import time
获取当前时间戳
time.time()
获取当前时间元组
time.localtime()
时间元组转时间戳
time.mktime(time.localtime()) #参数为时间元组
时间戳转时间元组
time.localtime(time.time()) #参数为时间戳
获取当前格式化时间
time.strftime("%Y-%m-%d %H:%M:%S")
时间元组转格式化时间
time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) #第二个参数为时间元组
格式化时间转元组
time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %H:%M:%S')
struct_time元组元素结构
属性 值
tm_year(年) 比如2011
tm_mon(月) 1 - 12
tm_mday(日) 1 - 31
tm_hour(时) 0 - 23
tm_min(分) 0 - 59
tm_sec(秒) 0 - 61
tm_wday(weekday) 0 - 6(0表示周日)
tm_yday(一年中的第几天) 1 - 366
tm_isdst(是否是夏令时) 默认为-1
format time结构化表示
格式含义
%a本地(locale)简化星期名称
%A本地完整星期名称
%b本地简化月份名称
%B本地完整月份名称
%c本地相应的日期和时间表示
%d一个月中的第几天(01 - 31)
%H一天中的第几个小时(24小时制,00 - 23)
%I第几个小时(12小时制,01 - 12)
%j一年中的第几天(001 - 366)
%m月份(01 - 12)
%M分钟数(00 - 59)
%p本地am或者pm的相应符
%S秒(01 - 61)
%U一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。
%w一个星期中的第几天(0 - 6,0是星期天)
%W和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x本地相应日期
%X本地相应时间
%y去掉世纪的年份(00 - 99)
%Y完整的年份
%Z时区的名字(如果不存在为空字符)
%%‘%’字符
二:datetime模块
datatime模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime,timedelta,tzinfo
1:time类import datetime
静态方法和字段
datetime.date.max #对象所能表示的最大日期
datetime.date.min #对象所能表示的最小日期
datetime.date.today() #返回一个表示当前本地日期的date对象
datetime.date.fromtimestamp(timestamp) #根据给定的时间戮,返回一个date对象
方法和属性
d1 = datetime.date(year, month, day) #datetime.date(2018,11,1)
d1.year #返回date对象的年
d1.month #返回date对象的月
d1.day #返回date对象的日
d1.replace(year, month, day) #生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性。(原有对象仍保持不变)
d1.timetuple() #返回日期对应的时间元组,及time.struct_time对象
d1.weekday() #返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推;
d1.isoweekday() #返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推;
d1.isocalendar()#返回格式如(year,month,day)的元组
d1.isoformat()返回格式如'YYYY-MM-DD’的字符串 2018-11-1
d1.strftime(fmt)#和time模块format相同(d1.strftime('%Y-%m-%d %H:%M:%S') 返回 2018-11-01 00:00:00)
2:date类import datetime
静态方法和字段
datetime.time.max #time类所能表示的最大时间(datetime.time.max = datetime.time(0,0,0,0))
datetime.time.min #time类所能表示的最小时间(datetime.time.min = datetime.time(23, 59, 59, 999999))
datetime.time.resolution #时间的最小单位,这里是1微秒
方法和属性
t1 = datetime.time(hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ) #datetime.date(17,43,11)
t1.hour #返回time对象的时
t1.minute #返回time对象的分
t1.second #返回time对象的秒
t1.microsecond#返回time对象的微秒
t1.tzinfo#返回时区信息
t1.replace([ hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] ) #创建一个新的时间对象,用参数指定的时、分、秒、微秒代替原有对象中的属性(原有对象仍保持不变)
t1.isoformat()#返回型如"HH:MM:SS"格式的字符串表示
t1.strftime(fmt)#同time模块中的format(t1.strftime('%Y-%m-%d %H:%M:%S') 返回 1900-01-01 17:43:11)
3:datetime类import datetime
静态方法和字段
datetime.datetime.today()#返回一个表示当前本地时间的datetime对象
datetime.datetime.now([tz])#返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间
datetime.datetime.utcnow()#返回一个当前utc时间的datetime对象;#格林威治时间
datetime.datetime.fromtimestamp(timestamp[, tz])#根据时间戮创建一个datetime对象,参数tz指定时区信息
datetime.datetime.utcfromtimestamp(timestamp)#根据时间戮创建一个datetime对象
datetime.datetime.combine(date, time)#根据date和time,创建一个datetime对象
datetime.datetime.strptime(date_string, format)#将格式字符串转换为datetime对象
方法和属性
dt = datetime.datetime.now() #当前时间的datetime对象
dt.year#返回当前时间年
dt.month#返回当前时间月
dt.day#返回当前时间日
dt.hour#返回当前时间时
dt.minute#返回当前时间分
dt.second#返回当前时间秒
dt.microsecond#返回当前时间微妙
dt.tzinfo#返回当前时间时区
dt.date()#获取date对象
dt.time()#获取time对象
dt.replace([ year[ , month[ , day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] ] ] ]) #创建一个新的时间对象,用参数指定的年、月、日、时、分、秒、微秒代替原有对象中的属性(原有对象仍保持不变)
dt.timetuple() #获取当前时间元组(tm_isdst参数为-1)
dt.utctimetuple()#获取当前时间元组(tm_isdst参数为0)
dt.strftime(format)#获取当前时间的格式化时间 (dt.strftime('%Y-%m-%d %H:%M:%S') 返回 2018-11-01 18:08:43)
2
+1