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函数组合可以实现这个功能 ...
随机推荐
- 写一个函数,将一个int型的数组做为参数传入,使用指针返回两个结果:最大值和最小值
今日下午研究了一下c语言中的指针问题,c语言的核心是指针,指针的核心是地址,地址的核心是内存. #include <stdio.h> void hanshu(int *arry,int s ...
- Sql Server触发器案例(初学者学习案例)
万事都是从最简单的一句“hello world”开始,所以我接下里介绍的sql触发器学习案例也从最简单的案例来说明分析: 1.首先创建表,这几张表你们也许很熟,在百度搜触发器案例都是使用这2张表 Cr ...
- 各种"居中"
先看效果 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> < ...
- 借助linq2db使用Linq访问MySQL
linq2db (@github)支持Linq访问多种数据库.使用它操作MySQL非常简单,但使用方式上有一些“新奇”,特记录一下. 下载安装(@NuGet)以及使用教程(@For MySQL). 使 ...
- git学习之remote
修改远程仓库:$ git remote set-url --push [name] [newUrl] git pull 的时候报错 fatal: Authentication failed for ' ...
- 常见的Activity Action Intent常量
Intent的中文意思是“意图,目的”的意思,可以理解为不同组件之间通信的“媒介”或者“信使”. 目标组件一般要通过Intent来声明自己的条件,一般通过组件中的<intent-filter&g ...
- 为IE单独写CSS的三种方法
本文由 Kayo Lee 发表,本文链接:http://kayosite.com/the-methods-make-css-only-for-ie.html 因为万恶的 IE 存在各种的不标准,因此, ...
- Part 57 to 58 Why should you override ToString and Equal Method
Part 57 Why should you override ToString Method sometimes you can override ToString method like that ...
- jQuery简介<思维导图>
jQuery是继prototype之后有一个优秀的Javascript库,它由John Resig创建于2006年1月.它简化了遍历HTML文档.操作DOM.处理事件.执行动画和Ajax的操作.它独特 ...
- Linux下用freetds连接mssql中文乱码的问题【参考1】
由于工作原因我们需要通过php访问我们以前的Sql Server 2005数据,所以就有了这篇文章的诞生.废话就少说了,做程序设计的最不喜欢兜圈子了.用简介步骤说明问题,往下看.系统: Linux ...