聊聊Python的time模块
time模块
time模块是很多人最早接触到的模块,像time.sleep(x)好像随处可见,但是time模块里面的其他方法呢?下面一起看一下time模块。
在Python中一般用这3种方式表示时间:
1.时间戳,包括time()等函数
2.格式化的时间字符 包括asctime()等函数
3.时间元组 包括localtime()等函数
分别举例如下:
print(time.time())
>>> 1553149608.6831224
time得到的时间单位是秒,那么这个秒是怎么来的呢?这是从1970年1月1日0点0分0秒开始计时,一直到现在经历的秒数(不信可以自己算一下)。为什么是1970?这一年发生了很多大事,比如Unix诞生了。
print(time.localtime())
>>> time.struct_time(tm_year=2019, tm_mon=3, tm_mday=21, tm_hour=14, tm_min=27, tm_sec=24, tm_wday=3, tm_yday=80, tm_isdst=0)
#从左到右依次是当前时间的年,月,日,时,分,秒,一周中第几天,一年中第几天,夏令时 print(time.localtime(time.time())) >>> time.struct_time(tm_year=2019, tm_mon=3, tm_mday=21, tm_hour=14, tm_min=27, tm_sec=24, tm_wday=3, tm_yday=80, tm_isdst=0)
这里得到的是一个元组,两个print得到的结果是一样的,说明localtime中有一个默认参数,就是time.time(),你也可以吧time.time()拿到的时间(1553149608.6831224)当做参数,得到的结果也是一样的。
print(time.gmtime())
>>> time.struct_time(tm_year=2019, tm_mon=3, tm_mday=21, tm_hour=6, tm_min=27, tm_sec=24, tm_wday=3, tm_yday=80, tm_isdst=0)
gmtime和localtime的用法是一样的,结果似乎也一样,但仔细一看发现tm_hour好像少8,这是为什么呢?因为我所在的中国位于东8区,gmtime获取的时间是零度经线的时间,没记错的话,应该是英国的格林尼治天文台所在的经度,也叫本初子午线嘛。
print(time.mktime(time.localtime()))
>>>1553150685.0
mktime可以把得到的元组转化成时间戳。
print(time.asctime())
>>>Thu Mar 21 14:48:48 2019 print(type(time.asctime()))
>>><class 'str'> print(time.asctime(time.localtime()))
>>>Thu Mar 21 14:48:48 2019
asctime可以把时间元组转化成一个固定格式的字符串,默认参数就是time.localtime拿到的元组。
print(time.ctime())
>>>Thu Mar 21 14:53:36 2019 print(time.ctime(time.time()))
>>>Thu Mar 21 14:53:36 2019
ctime和asctime拿到的结果一样,但是参数是时间戳,默认就是time.time()
print(time.strftime('%Y-%m-%d %H:%M:%S'))
>>>2019-03-21 15:00:50 print(time.strftime('%Y-%m-%d %X'))
>>>2019-03-21 15:00:50 print(time.strptime('2019-03-21 14:57:45','%Y-%m-%d %X'))
>>>time.struct_time(tm_year=2019, tm_mon=3, tm_mday=21, tm_hour=14, tm_min=57, tm_sec=45, tm_wday=3, tm_yday=80, tm_isdst=-1)
strftime可以按一定的规则,将时间元组转化成格式化字符串形式,如果没有时间元组参数,就默认为localtime。前面两个print结果是一样的,就是说%X可以代替%H:%M:%S,这是一种简写。strptime和strftime作用是相反的,注意格式要和输入的格式化字符串一致,不然就会报错了,format默认为:"%a %b %d %H:%M:%S %Y"。
到这里,上面三种时间的转化关系已经出来了:
sleep就不用讲了,就是线程推迟指定时长后运行,单位是秒,正常理解为等待就行,time模块基本就这些内容了。
聊聊Python的time模块的更多相关文章
- 通过实例简介python使用ctypes模块调用C语言动态库
看介绍python语言时,说它是胶水语言,可以调用其他语言.通过使用ctypes模块就可以调用C语言的动态库.下面先放上官方文档和几个比较好的博文. 1.官方文档:http://python.net/ ...
- 最全总结 | 聊聊 Python 数据处理全家桶(Sqlite篇)
1. 前言 上篇文章 聊到 Python 处理 Mysql 数据库最常见的两种方式,本篇文章继续说另外一种比较常用的数据库:Sqlite Sqlite 是一种 嵌入式数据库,数据库就是一个文件,体积很 ...
- 最全总结 | 聊聊 Python 数据处理全家桶(配置篇)
1.前言 在实际项目中,经常会接触到各种各样的配置文件,它可以增强项目的可维护性 常用配件文件的处理方式,包含:JSON.ini / config.YAML.XML 等 本篇文章,我们将聊聊 Pyth ...
- 最全总结 | 聊聊 Python 办公自动化之 Word(下)
1. 前言 关于 Word 文档的读写,前面两篇文章分别进行了一次全面的总结 最全总结 | 聊聊 Python 办公自动化之 Word(上) 最全总结 | 聊聊 Python 办公自动化之 Word( ...
- python之platform模块
python之platform模块 ^_^第三个模块从天而降喽!! 函数列表 platform.system() 获取操作系统类型,windows.linux等 platform.platform() ...
- python之OS模块详解
python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...
- python之sys模块详解
python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...
- 学习PYTHON之路, DAY 6 - PYTHON 基础 6 (模块)
一 安装,导入模块 安装: pip3 install 模块名称 导入: import module from module.xx.xx import xx from module.xx.xx impo ...
- linux下python调用c模块
在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明: (1)编写C代码,hel ...
随机推荐
- 使用HttpWebRequest请求https链接时,无法访问的问题,设置ServicePointManager.SecurityProtocol安全协议
//请求前设置一下使用的安全协议类型 System.Net if (url.StartsWith("https", StringComparison.OrdinalIgnoreCa ...
- Java 自定义注释@interface的用法
最简单的待校验的注解定义 @Documented @Constraint(validatedBy = ExistBlankByListValidator.class) @Target({PARAMET ...
- PHP实现多维数组按指定值排序
主要用到的PHP函数 array_multisort() .先实现指定多维数组一个字段排序 根据二维数组的id值来排序,转换后的数组格式如下: function arraySortByOneField ...
- unity3d优化-代码篇(不定期更新)
1.Update 大多数情况是需要在update中处理很多逻辑的,然而unity3d底层是c/c++编写,逻辑层是c#,通过monobehaviour挂载于对象中,实现一些unity3d接口的重载. ...
- Webpack3 从入门到放弃
我是网络的搬运工,具体请看:Webpack 3,从入门到放弃
- mac抓包工具anyproxy
本文以 mac为代理,ios手机为客户端举例. 文档地址:http://anyproxy.io/ 1.环境配置: 安装 node :参考 https://www.jianshu.com/p/3 ...
- 一、OpenStack环境准备及共享组件安装
一.OpenStack部署环境准备: 1.关闭防火墙所有虚拟机都要操作 # setenforce 0 # systemctl stop firewalld 2.域名解析所有虚拟机都要操作 # cat ...
- Java学习之软件安装
成功安装了jdk-10.0.1.eclipse-committers-2018-09-win32-x86_64.mysql-5.7.18.1和tomcat-9.0.0.M17
- CentOS,crontab的学习、使用、问题解决记录
参考:http://blog.csdn.net/luanwpp/article/details/7490871 参考: http://mp.weixin.qq.com/s?src=11&tim ...
- data parameter is nil 异常处理
似乎是NSData的问题,用排除法分析了一下 NSString *urlStr = [NSString stringWithFormat:@"%@/config/AppConfig.json ...