Python中处理时间 —— time模块
time模块
time 模块可用来处理时间,详细的说明参考 time模块说明。
逝去的秒数
逝去的秒数表示从某个时间(Python中是“Thu Jan 1 07:00:00 1970”)开始到现在所经过的秒数。
使用 time.time() 函数可以获得逝去的秒数:
>>time.time()
1388330058.8643
time.time()返回一个浮点数,可用于计算,比较,存储时间时间。
输出可读性强的时间字符串
要输出像“Thu Jan 1 07:00:00 1970”这种可读性强的时间字符串,我们可以使用 time.ctime() 函数,默认返回当前的时间:
>>> time.ctime()
'Sun Dec 29 23:17:44 2013'
也可以传入一个逝去的秒数,返回对应的时间字符串:
>>> time.ctime(0)
'Thu Jan 1 07:00:00 1970'
获取时间的各个部分信息
我们经常要分别获取一个时间的年、月、日、时、分、秒等信息,time模块定义了一个 struct_time 类型,用来存储时间的各个部分信息。该类型实现了元组协议,所以可以当作元组使用。
struct_time 的结构如下:
| Index | Attribute | Values |
|---|---|---|
| 0 | tm_year | (for example, 1993) |
| 1 | tm_mon | range [1, 12] |
| 2 | tm_mday | range [1, 31] |
| 3 | tm_hour | range [0, 23] |
| 4 | tm_min | range [0, 59] |
| 5 | tm_sec | range [0, 61]; see (2) in strftime() description |
| 6 | tm_wday | range [0, 6], Monday is 0 |
| 7 | tm_yday | range [1, 366] |
| 8 | tm_isdst | 0, 1 or -1; see below |
有几个函数都可以返回struct_time, gmtime() 返回当前的UTC时间,localtime() 返回当前时间域的当前时间:
>>> time.gmtime()
time.struct_time(tm_year=2013, tm_mon=12, tm_mday=29, tm_hour=15, tm_min=35, tm_sec=57, tm_wday=6, tm_yday=363, tm_isdst=0)
>>> time.localtime()
time.struct_time(tm_year=2013, tm_mon=12, tm_mday=29, tm_hour=23, tm_min=36, tm_sec=6, tm_wday=6, tm_yday=363, tm_isdst=0)
gmtime() 和 localtime() 也接受一个逝去的秒数作为参数,并转换成struct_time:
>>> time.localtime(0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=7, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
mktime() 接收 struct_time 参数并将其转化为逝去的秒数:
>>> time.mktime(time.localtime())
1388331386.0
解析和格式化时间
如何将类似”Sun Dec 29 23:17:44 2013“的字符串解析成 struct_time?
time模块提供了两个函数来处理这方面的工作。
函数 strptime() 用于将时间字符串解析成 struct_time,
函数 strftime() 则将 struct_time 格式化成可读性强的时间字符串
import time
now = time.ctime()
print now
parsed = time.strptime(now)
print parsed
print time.strftime("%a %b %d %H:%M:%S %Y", parsed)
# output =>
# Sun Mar 9 13:01:19 2008
# (2008, 3, 9, 13, 1, 19, 6, 69, -1)
# Sun Mar 09 13:01:19 2008
这两个函数都依赖特定的格式说明信息,默认的格式说明为”%a %b %d %H:%M:%S %Y“。完整的格式列表可以在 这里 找到。
| Directive | Meaning | Notes |
|---|---|---|
| %a | Locale’s abbreviated weekday name. |
|
| %A | Locale’s full weekday name. | |
| %b | Locale’s abbreviated month name. |
|
| %B | Locale’s full month name. | |
| %c | Locale’s appropriate date and time representation. |
|
| %d | Day of the month as a decimal number [01,31]. |
|
| %H | Hour (24-hour clock) as a decimal number [00,23]. |
|
| %I | Hour (12-hour clock) as a decimal number [01,12]. |
|
| %j | Day of the year as a decimal number [001,366]. |
|
| %m | Month as a decimal number [01,12]. |
|
| %M | Minute as a decimal number [00,59]. |
|
| %p | Locale’s equivalent of either AM or PM. |
(1) |
| %S | Second as a decimal number [00,61]. |
(2) |
| %U | Week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Sunday are considered to be in week 0. |
(3) |
| %w | Weekday as a decimal number [0(Sunday),6]. |
|
| %W | Week number of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday are considered to be in week 0. |
(3) |
| %x | Locale’s appropriate date representation. |
|
| %X | Locale’s appropriate time representation. |
|
| %y | Year without century as a decimal number [00,99]. |
|
| %Y | Year with century as a decimal number. |
|
| %Z | Time zone name (no characters if no time zone exists). |
|
| %% | A literal '%' character. |
Python中处理时间 —— time模块的更多相关文章
- Python中的random模块,来自于Capricorn的实验室
Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...
- Python中的logging模块
http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...
- Python中的random模块
Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...
- 浅析Python中的struct模块
最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言 ...
- python中的StringIO模块
python中的StringIO模块 标签:python StringIO 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的,只有一个StringIO类,所以它的可用方法都在类中.此类中的大部分 ...
- python中的select模块
介绍: Python中的select模块专注于I/O多路复用,提供了select poll epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqu ...
- Python中的re模块--正则表达式
Python中的re模块--正则表达式 使用match从字符串开头匹配 以匹配国内手机号为例,通常手机号为11位,以1开头.大概是这样13509094747,(这个号码是我随便写的,请不要拨打),我们 ...
- python中的shutil模块
目录 python中的shutil模块 目录和文件操作 归档操作 python中的shutil模块 shutil模块对文件和文件集合提供了许多高级操作,特别是提供了支持文件复制和删除的函数. 目录和文 ...
- Python中使用operator模块实现对象的多级排序
Python中使用operator模块实现对象的多级排序 今天碰到一个小的排序问题,需要按嵌套对象的多个属性来排序,于是发现了Python里的operator模块和sorted函数组合可以实现这个功能 ...
随机推荐
- jquery plugins —— datatables 搜索后汇总
网上的例子 http://datatables.club/example/plug-ins/api.html只能对当前页面或所有数据进行汇总,不能对搜索结果数据汇总. 以下是对datatables自带 ...
- 剑指Offer21 二叉树的层序遍历
/************************************************************************* > File Name: 21_PrintT ...
- JDBC批处理读取指定Excel中数据到Mysql关系型数据库
这个demo是有一个Excel中的数据,我需要读取其中的数据然后导入到关系型数据库中,但是为了向数据库中插入更多的数据,循环N次Excel中的结果. 关于JDBC的批处理还可以参考我总结的如下博文: ...
- poj 1390 动态规划
思路: 黑书的例题 #include<iostream> #include<cstring> #include<algorithm> #include<cma ...
- 在centos7中添加一个新用户并授权
参考地址:http://www.cnblogs.com/woshimrf/p/5906084.html 创建新用户 创建一个用户名为:zhangbiao [root@localhost ~]# add ...
- jQuery 显示加载更多(节流) 实现预加载
(function () { var showMoreNChildren = function ($children, n) { //显示某jquery元素下的前n个隐藏的子元素 var $hidde ...
- QtPropertyBrowser+vs2010的安装与配置(转)
这一篇文章有些问题,后又写了一篇,地址是http://www.cnblogs.com/aminxu/p/4552410.html 转自http://blog.csdn.net/jingwenlai_s ...
- js 动态添加元素(div、li、img等)及设置属性
把一串 html 标签赋给一个 javascript 变量,除属性的值要用转义的双引号外,某些时候字符串还很长,显得有些复杂.如果用 js 动态添加元素,就不会有那么复杂的字符串出现,代码阅读性强一点 ...
- [SQL]SUTFF内置函数的用法 (删除指定长度的字符并在指定的起始点插入另一组字符)
STUFF 删除指定长度的字符并在指定的起始点插入另一组字符. 语法 STUFF ( character_expression , start , length , character_express ...
- 20141009---Visual Studio 2012 预定义数据类型
预定义数据类型 一.值类型 整型:(整数) 有符号整型和无符号整形,区别是有符号的有负数无符号的都是正数, 2x+1 常用int 有符号: 带有正负数,范围为按所写依次增大 ...