文档章节

python 中的时间模块

ricardohn
 ricardohn
发布于 2017/02/28 10:47
字数 1103
阅读 9
收藏 0

1、time模块

内置的 time 模块让 Python程序能读取系统时钟的当前时间。在 time 模块中, time.time()和 time.sleep()函数是最有用的模块。

time.time()

Unix 纪元是编程中经常参考的时间: 1970 年 1 月 1 日 0 点,即协调世界时( UTC)。 time.time()函数返回自那一刻以来的秒数,是一个浮点值(回想一下,浮点值只是一个带小数点的数)。这个数字称为 UNIX 纪元时间戳。

time.sleep()函数

如果需要让程序暂停一下,就调用 time.sleep()函数,并传入希望程序暂停的秒数。

浮点数的取整 round()

Python 内置的 round()函数将它们缩短,该函数按照指定的精度四舍五入到一个浮点数。只要传入要舍入的数字,再加上可选的第二个参数,指明需要传入到小数点后多少位。如果省略第二个参数, round()将数字四舍五入到最接近的整数。
 

2、datetime模块

以更方便的格式显示日期,或对日期进行算术运算(例如,搞清楚 205 天前是什么日期,或 123天后是什么日期),就应该使用 datetime 模块。

datetime.datetime.now()

返回一个 datetime 对象,表示当前的日期和时间,根据你的计算机的时钟。这个对象包含当前时刻的年、月、日、时、分、秒和微秒。也可以利用 datetime.datetime()函数,向它传入代表年、月、日、时、分、秒的整数,得到特定时刻的 datetime 对象。这些整数将保存在 datetime 对象的 year、month、 day、 hour、 minute 和 second属性中。

 datetime.datetime.fromtimestamp()

Unix 纪元时间戳转换为 datetime
对象。 datetime 对象的日期和时间将根据本地时区转换。

timedelta 数据类型

datetime 模块还提供了 timedelta 数据类型,它表示一段时间,而不是一个时刻。要创建 timedelta 对象,就用 datetime.timedelta()函数。 datetime.timedelta()函数接受关键字参数 weeks、 days、 hours、 minutes、 seconds、 milliseconds 和 microseconds。没有 month 和 year 关键字参数,因为“月”和“年”是可变的时间,依赖于特定月份或年份。 timedelta 对象拥有的总时间以天、秒、微秒来表示。这些数字分别保存在 days、 seconds 和 microseconds 属性中。

delta = datetime.timedelta(days=11, hours=10, minutes=9, seconds=8)
delta.days, delta.seconds, delta.microseconds
#(11, 36548, 0)
delta.total_seconds()
#986948.0
str(delta)
#'11 days, 10:09:08'

算术运算符可以用于对 datetime 值进行日期运算。例如,要计算今天之后 1000天的日期,在交互式环境下:

>>> dt = datetime.datetime.now()
>>> dt
datetime.datetime(2015, 2, 27, 18, 38, 50, 636181)
>>> thousandDays = datetime.timedelta(days=1000)
>>> dt + thousandDays
datetime.datetime(2017, 11, 23, 18, 38, 50, 636181)

datetime对象转换为字符串

python中时间日期格式化符号:

  • %y 两位数的年份表示(00-99)
  • %Y 四位数的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月内中的一天(0-31)
  • %H 24小时制小时数(0-23)
  • %I 12小时制小时数(01-12)
  • %M 分钟数(00=59)
  • %S 秒(00-59)
  • %a 本地简化星期名称
  • %A 本地完整星期名称
  • %b 本地简化的月份名称
  • %B 本地完整的月份名称
  • %c 本地相应的日期表示和时间表示
  • %j 年内的一天(001-366)
  • %p 本地A.M.或P.M.的等价符
  • %U 一年中的星期数(00-53)星期天为星期的开始
  • %w 星期(0-6),星期天为星期的开始
  • %W 一年中的星期数(00-53)星期一为星期的开始
  • %x 本地相应的日期表示
  • %X 本地相应的时间表示
  • %Z 当前时区的名称
  • %% %号本身
oct21st = datetime.datetime(2015, 10, 21, 16, 29, 0)
print oct21st.strftime('%Y/%m/%d %H:%M:%S')
print oct21st.strftime('%I:%M %p')
print oct21st.strftime("%B of '%y")

#输出
#2015/10/21 16:29:00
#04:29 PM
#October of '15

将字符串转换成 datetime 对象

如果有一个字符串的日期信息,如'2015/10/21 16:29:00'或'October 21, 2015',需要将它转换为 datetime 对象,就用 datetime.datetime.strptime()函数。 strptime()函数与strftime()方法相反。定制的格式字符串使用相同的指令,像 strftime()一样。必须将格式字符串传入 strptime(),这样它就知道如何解析和理解日期字符串( strptime()函数名中 p 表示解析, parse)。

>>>datetime.datetime.strptime('October 21, 2015', '%B %d, %Y')
#datetime.datetime(2015, 10, 21, 0, 0)
>>> datetime.datetime.strptime('2015/10/21 16:29:00', '%Y/%m/%d %H:%M:%S')
#datetime.datetime(2015, 10, 21, 16, 29)
>>> datetime.datetime.strptime("October of '15", "%B of '%y")
#datetime.datetime(2015, 10, 1, 0, 0)


 


 

© 著作权归作者所有

共有 人打赏支持
ricardohn
粉丝 1
博文 76
码字总数 30236
作品 0
成都
私信 提问
学习笔记(11月09日)--import&datetime

四周四次课(11月9日) 在日常的开发工作中,我们要写很多的python代码,如果都写在一个文件中,会导致代码特别难维护,为了拓展代码的可维护性,我们把函写在不同的文件里,这样每个文件包含...

wanyang_wanyang
07/03
0
0
关于Python Profilers性能分析器

介绍性能分析器 profiler是一个程序,用来描述运行时的程序性能,并且从不同方面提供统计数据加以表述。Python中含有3个模块提供这样的功能,分别是cProfile, profile和pstats。这些分析器提...

索隆
2012/05/02
0
0
Python 3.7.0 来了!

【新智元导读】Python官网静悄悄地发布了一条大消息:正式发布 Python 3.7.0!同时发布的还有Python 3.6.6稳定版。官网刚刚更新了可下载文档,还在用Python 2.7和Python3.5的你,赶紧用起来!...

技术小能手
07/09
0
0
Python基础入门教程(4)(数据类型)

人生苦短,我学Pyhton   Python(英语发音:/ˈpaɪθən/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同...

jamesjoshuasss
2017/03/07
0
0
Python编程规范及性能优化

Python编程规范及性能优化 Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -- coding:utf-8 -- 。设置编辑器,默认保存为 utf-8 格式。 注释 业界普遍认同 Python 的注释分为...

陶邦仁
2013/01/16
0
1

没有更多内容

加载失败,请刷新页面

加载更多

码云项目100,水一发

简单回顾一下: 早期构想最多的,是希望能将PHP一些类和编码分区做得更细,所以很多尝试。但不得不说,PHP的功能过于单一,是的,也许写C/C++扩展,可以解决问题,那我为什么不用C#或者Golan...

曾建凯
今天
1
0
Spring应用学习——AOP

1. AOP 1. AOP:即面向切面编程,采用横向抽取机制,取代了传统的继承体系的重复代码问题,如下图所示,性能监控、日志记录等代码围绕业务逻辑代码,而这部分代码是一个高度重复的代码,也就...

江左煤郎
今天
4
0
eclipse的版本

Eclipse各版本代号一览表 Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。 Eclipse基本内核包括:图形API(SWT/Jface),Java开发环...

mdoo
今天
3
0
SpringBoot源码:启动过程分析(一)

本文主要分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 还是老套路,先把分析过程的时序图摆出来:时序图-SpringBoot2.10启动分析 二.源码分析 首...

Jacktanger
今天
6
0
小白带你认识netty(二)之netty服务端启动(上)

上一章 中的标准netty启动代码中,ServerBootstrap到底是如何启动的呢?这一章我们来瞅下。 server.group(bossGroup, workGroup);server.channel(NioServerSocketChannel.class).optio...

天空小小
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部