Python时间日期格式化之time与datetime模块总结(3)

>>> time.strftime('%y-%m-%d' , time.localtime())
'18-12-19'
>>> time.strftime('%Y-%m-%d' , time.localtime())
'2018-12-19'
>>> time.strftime('%Y年%m月%d日 %M时%I分%S秒' , time.localtime())
'2018年12月19日 54时06分20秒'

Python时间日期格式化之time与datetime模块总结

  6)strptime(string, format)

 

>>> time.strptime('2018年12月08日 34时10分04秒' , '%Y年%m月%d日 %M时%I分%S秒')
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=8, tm_hour=10, tm_min=34, tm_sec=4, tm_wday=5, tm_yday=342, tm_isdst=-1)
>>> time.strptime('2018年12月19日 54时06分20秒' , '%Y年%m月%d日 %M时%I分%S秒')
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=19, tm_hour=6, tm_min=54, tm_sec=20, tm_wday=2, tm_yday=353, tm_isdst=-1)

Python时间日期格式化之time与datetime模块总结

  7)asctime(p_tuple=None)

>>> time.asctime() # 不传入参数,默认是当前时间
'Wed Dec 19 18:59:22 2018'
>>> time.asctime(time.localtime(1544278402.1804464))
'Sat Dec  8 22:13:22 2018'

  8)ctime(seconds=None)

>>> time.ctime() # 不传入参数
'Wed Dec 19 19:00:05 2018'
>>> time.ctime(1544278402.1804464)
'Sat Dec  8 22:13:22 2018'

Python时间日期格式化之time与datetime模块总结

4 datetime模块

  datetime模块是time模块的进一步封装,对用户更加友好,在时间各属性的获取上回更加方便一些,当然,在效率上会略微低一些。datetime模块的功能主要都几种在datetime、date、time、timedelta、tzinfo五个类中。这五个类功能如下表所示:

类名

 

功能

 

date

 

提供日期(年、月、日)的处理

 

time

 

提供时间(时、分、秒)的处理

 

datetime

 

同时提供对日期和时间的处理

 

timedelta

 

两个date、time、datetime实例之间的时间间隔(时间加减运算)

 

tzinfo

 

时区信息

 
4.1 date类

  先来说说date类,其定义如下:

class datetime.date(year, month, day)

  year, month 和 day都是是必须参数,各参数的取值范围为:

参数名称

 

取值范围

 

year

 

[MINYEAR, MAXYEAR]

 

month

 

[1, 12]

 

day

 

[1, 指定年份的月份中的天数]

 
  类方法和属性

类方法/属性名称

 

描述

 

date.max

 

date对象所能表示的最大日期:9999-12-31

 

date.min

 

date对象所能表示的最小日志:00001-01-01

 

date.resoluation

 

date对象表示的日期的最小单位:天

 

date.today()

 

返回一个表示当前本地日期的date对象

 

date.fromtimestamp(timestamp)

 

根据跟定的时间戳,返回一个date对象

 
  对象方法和属性

对象方法/属性名称

 

描述

 

d.year

 

 

d.month

 

 

d.day

 

 

d.replace(year[, month[, day]])

 

生成并返回一个新的日期对象,原日期对象不变

 

d.timetuple()

 

返回日期对应的time.struct_time对象

 

d.toordinal()

 

返回日期是是自 0001-01-01 开始的第多少天

 

d.weekday()

 

返回日期是星期几,[0, 6],0表示星期一

 

d.isoweekday()

 

返回日期是星期几,[1, 7], 1表示星期一

 

d.isocalendar()

 

返回一个元组,格式为:(year, weekday, isoweekday)

 

d.isoformat()

 

返回‘YYYY-MM-DD’格式的日期字符串

 

d.strftime(format)

 

返回指定格式的日期字符串,与time模块的strftime(format, struct_time)功能相同

 
4.2 time类

  定义格式:

class datetime.time(hour, [minute[, second, [microsecond[, tzinfo]]]])

  hour为必须参数,其他为可选参数。各参数的取值范围为:

参数名称

 

取值范围

 

hour

 

[0, 23]

 

minute

 

[0, 59]

 

second

 

[0, 59]

 

microsecond

 

[0, 1000000]

 

tzinfo

 

tzinfo的子类对象,如timezone类的实例

 
  类方法和属性

类方法/属性名称

 

描述

 

time.max

 

time类所能表示的最大时间:time(23, 59, 59, 999999)

 

time.min

 

time类所能表示的最小时间:time(0, 0, 0, 0)

 

time.resolution

 

时间的最小单位,即两个不同时间的最小差值:1微秒

 
  对象方法和属性

对象方法/属性名称

 

描述

 

t.hour

 

 

t.minute

 

 

t.second

 

 

t.microsecond

 

微秒

 

t.tzinfo

 

返回传递给time构造方法的tzinfo对象,如果该参数未给出,则返回None

 

t.replace(hour[, minute[, second[, microsecond[, tzinfo]]]])

 

生成并返回一个新的时间对象,原时间对象不变

 

t.isoformat()

 

返回一个‘HH:MM:SS.%f’格式的时间字符串

 

t.strftime()

 

返回指定格式的时间字符串,与time模块的strftime(format, struct_time)功能相同

 
4.3 datetime类

  datetime类的定义如下:

class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)

  year, month 和 day是必须要传递的参数, tzinfo可以是None或tzinfo子类的实例。

  各参数的取值范围为:

参数名称

 

取值范围

 

year

 

[MINYEAR, MAXYEAR]

 

month

 

[1, 12]

 

day

 

[1, 指定年份的月份中的天数]

 

hour

 

[0, 23]

 

minute

 

[0, 59]

 

second

 

[0, 59]

 

microsecond

 

[0, 1000000]

 

tzinfo

 

tzinfo的子类对象,如timezone类的实例

 

  如果一个参数超出了这些范围,会引起ValueError异常。

  类方法和属性:

类方法/属性名称

 

描述

 

datetime.today()

 

返回一个表示当前本期日期时间的datetime对象

 

datetime.now([tz])

 

返回指定时区日期时间的datetime对象,如果不指定tz参数则结果同上

 

datetime.utcnow()

 

返回当前utc日期时间的datetime对象

 

datetime.fromtimestamp(timestamp[, tz])

 

根据指定的时间戳创建一个datetime对象

 

datetime.utcfromtimestamp(timestamp)

 

根据指定的时间戳创建一个datetime对象

 

datetime.combine(date, time)

 

把指定的date和time对象整合成一个datetime对象

 

datetime.strptime(date_str, format)

 

将时间字符串转换为datetime对象

 

  对象方法和属性:

对象方法/属性名称

 

描述

 

dt.year, dt.month, dt.day

 

年、月、日

 

dt.hour, dt.minute, dt.second

 

时、分、秒

 

dt.microsecond, dt.tzinfo

 

微秒、时区信息

 

dt.date()

 

获取datetime对象对应的date对象

 

dt.time()

 

获取datetime对象对应的time对象, tzinfo 为None

 

dt.timetz()

 

获取datetime对象对应的time对象,tzinfo与datetime对象的tzinfo相同

 

dt.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]])

 

生成并返回一个新的datetime对象,如果所有参数都没有指定,则返回一个与原datetime对象相同的对象

 

dt.timetuple()

 

返回datetime对象对应的tuple(不包括tzinfo)

 

dt.utctimetuple()

 

返回datetime对象对应的utc时间的tuple(不包括tzinfo)

 

dt.toordinal()

 

同date对象

 

dt.weekday()

 

同date对象

 

dt.isocalendar()

 

同date独享

 

dt.isoformat([sep])

 

返回一个‘%Y-%m-%d

 

dt.ctime()

 

等价于time模块的time.ctime(time.mktime(d.timetuple()))

 

dt.strftime(format)

 

返回指定格式的时间字符串

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b917622714525eddfe165d35b902dd64.html