time&datetime模块
2019-01-23 07:41:55来源:博客园 阅读 ()
一、在python中,通常有这几种方式来表示时间:
-
时间戳
-
格式化的时间字符串
-
元祖(struct_time)共九个元素。由于Python的time模块实现主要调用C库,所以每个平台可能有所不同。
二、几个定义
UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。
时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移值。我们运行type(time.time()),返回的是float类型。
元祖(struct_time)方式:struct_time元祖共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。下面列出这种方式元祖中的几个元素:
属性 值
tm_year(年) 比如2019
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
time模块的方法
time.localtime( [secs] )
将一个时间戳转换为当前时区的struct_time,即时间数组格式的时间
参数:
sec – 转换为time.struct_time类型的对象的秒数
如果secs参数未提供,则以当前时间为准(即会默认调用time.time())。
>>> import time
>>> time.localtime()
time.struct_time(tm_year=2019, tm_mon=1, tm_mday=23, tm_hour=10, tm_min=31, tm_sec=21, tm_wday=2, tm_yday=23, tm_isdst=0)
time.gmtime([secs])
将一个时间戳转换为UTC时区的struct_time
time.gmtime() 函数将一个时间戳转换为UTC时区(0时区)的struct_time,可选的参数sec表示从1970-1-1 00:00:00以来的秒数。其默认值为time.time(),函数返回time.struct_time类型的对象。(struct_time是在time模块中定义的表示时间的对象)。
如果secs参数未提供,则以当前时间为准。
参数:
sec – 转换为time.struct_time类型的对象的秒数
>>> time.gmtime()
time.struct_time(tm_year=2019, tm_mon=1, tm_mday=23, tm_hour=2, tm_min=34, tm_sec=6, tm_wday=2, tm_yday=23, tm_isdst=0)
>>>
time.time()
返回当前时间的时间戳
>>> time.time()
1548210925.5266087
time.mktime(t)
将一个struct_time转化为时间戳
time.mktime() 函数执行与gmtime(), localtime()相反的操作,它接收struct_time对象作为参数,返回用秒数表示时间的浮点数。
如果输入的值不是一个合法的时间,将触发 OverflowError 或 ValueError。
参数:
t – 结构化的时间或者完整的9位元组元素
>>> time.mktime(time.localtime())
1548211010.0
time.sleep(secs)
线程推迟指定的时间运行
线程睡眠指定时间,单位为妙。
>>> time.sleep(2) # 睡眠2秒
time.asctime( [t] )
把一个表示时间的元组或者struct_time表示为 ‘Sun Aug 23 14:31:59 2015’ 这种形式。如果没有给参数,会将time.localtime()作为参数传入。
参数:
t – 9个元素的元组或者通过函数 gmtime() 或 localtime() 返回的时间值
>>> time.asctime()
'Wed Jan 23 10:39:47 2019'
time.ctime([secs])
把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果为指定参数,将会默认使用time.time()作为参数。它的作用相当于time.asctime(time.localtime(secs))
参数:
sec – 要转换为字符串时间的秒数
>>> time.ctime()
'Wed Jan 23 10:41:58 2019'
time.strftime( format [, t] )
返回字符串表示的当地时间。
把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串,格式由参数format决定。如果未指定,将传入time.localtime()。如果元组中任何一个元素越界,就会抛出ValueError的异常。函数返回的是一个可读表示的本地时间的字符串。
参数:
format:格式化字符串
t :可选的参数是一个struct_time对象
时间字符串支持的格式符号:(区分大小写)
%a 本地星期名称的简写(如星期四为Thu)
%A 本地星期名称的全称(如星期四为Thursday)
%b 本地月份名称的简写(如八月份为agu)
%B 本地月份名称的全称(如八月份为august)
%c 本地相应的日期和时间的字符串表示(如:15/08/27 10:20:06)
%d 一个月中的第几天(01 - 31)
%f 微秒(范围0.999999)
%H 一天中的第几个小时(24小时制,00 - 23)
%I 第几个小时(12小时制,0 - 11)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12)
%M 分钟数(00 - 59)
%p 本地am或者pm的相应符
%S 秒(00 - 61)
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之 前的所有天数都放在第0周。
%w 一个星期中的第几天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x 本地相应日期字符串(如15/08/01)
%X 本地相应时间字符串(如08:08:10)
%y 去掉世纪的年份(00 - 99)两个数字表示的年份
%Y 完整的年份(4个数字表示年份)
%z 与UTC时间的间隔(如果是本地时间,返回空字符串)
%Z 时区的名字(如果是本地时间,返回空字符串)
%% ‘%’字符
time.strptime(string[,format])
将格式字符串转化成struct_time.
该函数是time.strftime()函数的逆操作。time strptime() 函数根据指定的格式把一个时间字符串解析为时间元组。所以函数返回的是struct_time对象。
参数:
string :时间字符串
format:格式化字符串
注意在使用strptime()函数将一个指定格式的时间字符串转化成元组时,参数format的格式必须和string的格式保持一致,如果string中日期间使用“-”分隔,format中也必须使用“-”分隔,时间中使用冒号“:”分隔,后面也必须使用冒号分隔,否则会报格式不匹配的错误。
时间格式转换图:
datetime模块
-
datetime模块定义了下面几个类:
-
datetime.date:表示日期的类。常用的属性有year,month,day;
-
datetime.time:表示时间的类。常用的属性有hour,minute,second,microsecond;
-
datetime.datetime:表示日期时间。
-
datetime.timedelta:表示时间间隔,即两个时间点之间的长度;
-
datetime.tzinfo:与时区有关的信息。
需要记住的方法:
-
d = datetime.datetime.now() 返回当前的datetime日期类型
-
d.timestamp(),d.today,d.year,d.timetuple()等方法可以调用
-
-
datetime.date.fromtimestamp() 把一个时间戳转为datetime日期类型
-
时间运算
>>> datetime.datetime.now()
datetime.datetime(2019, 1, 23, 11, 3, 42, 125406)
>>> datetime.datetime.now() + datetime.timedelta(4) # 当前时间+4天
datetime.datetime(2019, 1, 27, 11, 4, 18, 791478)
>>> datetime.datetime.now() + datetime.timedelta(hours=4) # 当前时间+4小时
datetime.datetime(2019, 1, 23, 15, 4, 52, 988594)
4. 时间替换
>>> d.replace(year=1994,month=11,day=12)
datetime.datetime(1994, 11, 12, 11, 0, 27, 749344)
原文:https://blog.csdn.net/SeeTheWorld518/article/details/48314501
https://www.cnblogs.com/tkqasn/p/6001134.html
原文链接:https://www.cnblogs.com/ForT/p/10307762.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:#3 Python解释器和编辑器
- Python连载30-多线程之进程&线程&线程使用 2019-08-13
- Python连载25-函数tell&write&writeline$&a 2019-07-24
- Python连载24-函数list&read&seek 2019-07-24
- python中time.strftime不支持中文,报错UnicodeEncodeError: 2019-07-24
- Django源码安装xadmin报错Apps aren't loaded yet. 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash