写在之前

大家好,这是首发在我公众号「Python空间」的第 69 篇文章,欢迎关注,期待和你的交流。

在昨天的文章(Python 标准库之日期)中我们学习了 Python 标准库中「日期 & 时间」中的「日期」,本来想昨天一起写完的,鉴于内容太多怕学起来厌烦了,所以把剩下的「时间」放到今天来学。

「时间」这一部分的话,主要就是标准库中的两个:time 和 datetime。下面我们依次来看。

time

time 模块是我们很常用的一个模块,比如我们需要记录某个程序运行的时间长短等,下面容我一一介绍其中的方法。

1.time()

>>> import time

>>> time.time()

1536827514.095

time.time() 是获得当前的时间(严格点说是时间戳),只不过这个时间相当不友好,它是以 1970 年 1 月 1 日 0 时 0 分 0 秒为起点,到当前的时间长度。

当然,我们还是有友好的时间显示的,请接着往下看。

2.localtime()

>>> time.localtime()

time.struct_time(tm_year=2018, tm_mon=9, tm_mday=13, tm_hour=16, tm_min=37, tm_sec=48, tm_wday=3, tm_yday=256, tm_isdst=0)

这个就友好很多了,得到的结果我们可以称之为时间元祖(也有括号),它们的索引分别是从 0 到 8,代表的含义依次是:年,月,日,时,分,秒,一周中的第几天,一年中的第几天,夏令时。

>>> t = time.localtime()

>>> t[1]

9

通过索引能够得到相应的属性,上面的例子中就得到了当前时间的月份。

3.asctime()

>>> time.asctime()

'Thu Sep 13 16:47:57 2018'

time.asctime() 的参数为空时,默认的设置是 time.localtime() 的值为参数,所以得到的是当前日期,时间和星期。当然,我们也可以自己设置参数。

>>> h = time.localtime(1000000)

>>> h

time.struct_time(tm_year=1970, tm_mon=1, tm_mday=12, tm_hour=21, tm_min=46, tm_sec=40, tm_wday=0, tm_yday=12, tm_isdst=0)

>>> time.asctime(h)

'Mon Jan 12 21:46:40 1970'

注意,time.asctime() 的参数必须是时间元组,类似上面的那种。

4.mktime()

mktime() 也是以时间元组为参数,但是它返回的不是可读性更好的那种样式,而是下面这种形式的:

>>> lt = time.localtime()

>>> lt

time.struct_time(tm_year=2018, tm_mon=9, tm_mday=13, tm_hour=17, tm_min=28, tm_sec=2, tm_wday=3, tm_yday=256, tm_isdst=0)

>>> time.mktime(lt)

1536830882.0

返回了时间戳,类似于 localtime() 的逆程序(localtime() 以时间戳为参数)。

好像到了这里还缺点什么,在编程中用的比较多的是“字符串”,似乎还没有将时间转化为字符串的函数,这个应该有,继续往下看。

5.strftime()

这个的函数格式稍微复杂一点:

>>> help(time.strftime)

Help on built-in function strftime in module time:

strftime(...)

strftime(format[, tuple]) -> string

将时间元组按照指定格式要求转化为字符串,如果不指定的话就默认为 localtime() 值。之所以说它复杂,是在于其 format,需要用到以下所示的东西:

简单的举个例子,请看下面:

>>> time.strftime("%y,%m,%d")

'18,09,13'

>>> time.strftime("%y/%m/%d")

'18/09/13'

分隔符可以由我们自由指定,既然已经变成了字符串,那么就可以“随心所欲”的玩啦。

datetime

虽然 time 模块已经能把有关时间方面的东西搞定了,但是在实际业务中其实还有更多复杂的要求,呼唤着更多的专有工具,这些专有工具将复杂的业务封装,让我们使用起来更简单,比如我们现在要学的 datetime 就是其中之一。

datetime 主要有这么几个类:date(日期类),time(时间类),datetime(日期时间类),timedelta(时间间隔),tzinfo(时区类)。下面我挑前几个常用的给大家说一下。

1.date 类

下面让我们通过实例来了解一下常用的属性:

>>> import datetime

>>> today = datetime.date.today()

>>> today

datetime.date(2018, 9, 13)

上面生成的是一个日期对象,然后操作这个对象的各种属性,可以用 print 语句,以获得更佳的视觉效果:

>>> print(today)

2018-09-13

>>> print(today.ctime())

Thu Sep 13 00:00:00 2018

这里需要注意的是,如果用 datetime.date.year() 的话会报错,因为 year 不是一个方法,必须像下面这样才可以:

>>> print(today.year)

2018

>>> print(today.month)

9

>>> print(today.day)

13

当然还有一些诸如时间戳与时间格式化的转换,修改日期等,有兴趣的可以去查一下,没兴趣的等碰到再说好了。

2.time 类

time 类也要生成 time 对象:

>>> t = datetime.time(1,2,3)

>>> print(t)

01:02:03

time 类的常用属性如下所示:

>>> print(t.hour)

1

>>> print(t.minute)

2

>>> print(t.second)

3

>>> t.microsecond

0

3.timedelta 类

timedelta 类主要用来做时间的运算,比如像下面这样:

>>> now = datetime.datetime.now()

>>> print(now)

2018-09-13 22:06:47.738903

在这里我没有讲 datetime 类,因为有了 date 和 time 类的知识以后,这个类变得非常简单。下面我们来继续上面的例子进行操作:

>>> b = now + datetime.timedelta(hours = 5)

>>> print(b)

2018-09-14 03:10:45.656367

上述代码是对 now 增加了 5 个小时,下面我们继续来操作增加两周:

>>> c = now + datetime.timedelta(weeks = 2)

>>> print(c)

2018-09-27 22:10:45.656367

最后我们来计算一下时间差:

>>> d = c - b

>>> print(d)

13 days, 19:00:00

写在之后

那么到这,Python 标准库之日期 & 时间 算是结束了,这两部分的内容其实比较多,难倒是不难,就是需要记得东西比较多。我们都知道「好记性不如烂笔头」的道理,在编程上,也是一个道理,只不过要改成「好记性不如多敲码」,希望你还是要多多练习。

还是老话,如果你觉得本篇文章对你有帮助的话,请点个赞再走,谢谢。

python标准库time_Python 标准库之时间篇相关推荐

  1. python标准库time_python标准库介绍——12 time 模块详解

    ==time 模块== ``time`` 模块提供了一些处理日期和一天内时间的函数. 它是建立在 C 运行时库的简单封装. 给定的日期和时间可以被表示为浮点型(从参考时间, 通常是 1970.1.1 ...

  2. python第三方库排行-140种Python标准库、第三方库和外部工具

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  3. python第三方库大全win-Python标准库、第三方库和外部工具汇总

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  4. python标准库和第三方库_python常用标准库及三方库

    python 常用标准库及三方库 作者: yegle 链接: https://www.zhihu.com/question/20501628/answer/153211 84 著作权归作者所有.商业转 ...

  5. Python基础概念_11_标准库

    标准库 12 标准库 12.1 简介 Python 标准库是随Python附带安装的,它包含大量极其有用的模块.熟悉 Python 标准库是十分重要的,因为如果你熟悉这些库中的模块,那么你的大多数问题 ...

  6. 140种Python标准库、第三方库和外部工具都有了

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  7. python计算样本方差_Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算...

    使用numpy可以做很多事情,在这篇文章中简单介绍一下如何使用numpy进行方差/标准方差/样本标准方差/协方差的计算. variance: 方差 方差(Variance)是概率论中最基础的概念之一, ...

  8. cassandra可视化工具_耗时1个月整理!160种Python标准库、第三方库和外部工具都有了...

    耗时1个月整理!160种Python标准库.第三方库和外部工具都有了 北京尚学堂 2019-12-09 14:59:15 Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数 ...

  9. 微课|玩转Python轻松过二级(1.6节):导入和使用标准库、扩展库对象

    适用教材: 董付国.<玩转Python轻松过二级>.清华大学出版社,2018. 第1章  Python概述 1.6  标准库与扩展库对象的导入与使用 图书购买链接 京东:https://i ...

最新文章

  1. AI一分钟 | 谷歌员工对中国版搜索引擎提出抗议;华为麒麟980将于本月底发布...
  2. python与php8-Python比php发展快的十大理由
  3. 软件项目管理0628:出差面临的问题
  4. PHP如何让内存不释放,PHP中使用unset销毁变量并内存释放问题
  5. CodeForces - 1287D Numbers on Tree(dfs+stl)
  6. Java IO 之 InputStream源码(2)
  7. unity android适配,unity实战 手机屏幕适配
  8. 宿迁市烟草专卖局(公司)系统信息系统运行维护管理办法(试行)
  9. PHP检测每一段代码执行时间
  10. Longest Valid Parentheses leetcode java
  11. 小巧单据打印管理软件
  12. CSS样式div和img居中
  13. 两个网卡做映射linux,linux多网卡的路由模式和桥接模式设置方法
  14. java计算机毕业设计企业固定资产管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  15. Ubuntu下装codeblocks
  16. prometheus定义counter指标
  17. AD18系统设置界面各层详解
  18. Unity中使用另一个遮罩方案解决Mask组件的锯齿现象
  19. 顾客点餐系统-----后端代码编写(基于SSM)
  20. Seam 对话以及工作区管理

热门文章

  1. Android studio之Error:(23, 17) Failed to resolve: junit:junit:4.12
  2. linux网络编程之并发服务器的三种实现模型 (超级经典)
  3. C++容器的insert()函数有以下三种用法: 最终*it=val;
  4. Andorid之taskAffinity 和 FLAG_ACTIVITY_NEW_TASK
  5. 【iVX 初级工程师培训教程 10篇文拿证】09 聊天室制作
  6. C++入门指南及实战 第三步 基本变量
  7. oracle存档模式,Oracle的备份和存档模式
  8. python画方波_python实现周期方波信号频谱图
  9. 竞赛奇葩队名,学编程的人都是隐藏的段子手 | 今日最佳
  10. 大数据时代,数据科学都有些啥?