设为首页 收藏本站
查看: 877|回复: 0

[经验分享] python之时间处理模块 -- time

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2015-10-22 09:18:13 | 显示全部楼层 |阅读模式
   在平常的代码中,我们常常需要与时间打交道。在Python中,与时间处理有关的模块就包括:time,datetime以及calendar。这篇文章,主要讲解time模块。
1.  在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)。
2.  UTC(CoordinatedUniversal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。

下面详细介绍三种时间表达方式和其之间的转化:
  直接上代码 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/python
# -*- coding: utf-8 -*-

import time


#一、 三种时间的表达方式

#1、时间戳    1970年1月1日之后的秒  结果:1445394624.53

print time.time()

#2、结构化时间 包含了:年、日、星期等...   结果: stime.struct_time(tm_year=2015, tm_mon=10, tm_mday=........

print time.localtime()

#3、格式化的字符串    结果:2011-11-11 11:11:11

print  time.strftime('%Y-%m-%d %H:%M:%S')


#二、 各自之间的转化

#1、结构化时间  转化为 时间戳  结果:1445394624.0

# time.mktime(t)
print  time.mktime(time.localtime())

#2、时间戳 转化为 结构化时间   结果:time.struct_time(tm_year=2015, tm_mon=10, tm_mday=21 ...........

# time.localtime([secs]):。secs参数未提供,则以当前时间为准。
print  time.localtime(1445394624.0) #当地的时间
# 和localtime()方法类似
print time.gmtime(1445394624.0)   #格林威治时间

#3、格式化的字符串 转化为 结构化时间 结果为:time.struct_time(tm_year=2015, tm_mon=11, tm_mday=11,.....

# time.strptime(string[, format]):
print time.strptime('2015-11-11 11:11:11','%Y-%m-%d %H:%M:%S')

#4、结构化时间 转化为 格式化的字符串 结果:2015-10-21 10:41:35

# time.strftime(format[, t]) 如果t未指定,将传入time.localtime()。如果元组中任何一个元素越界,ValueError的错误将会被抛出。
print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())

#5、格式化的字符串  转化为 时间戳  结果: 1447211471.0

print time.mktime(time.strptime('2015-11-11 11:11:11','%Y-%m-%d %H:%M:%S'))

#6、时间戳 转化为 格式化的字符串  #结果 2015-11-11 11:11:11

print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(1447211471.0))

#7、把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。结果:  Wed Oct 21 11:15:42 2015

# 如果没有参数,将会将time.localtime()作为参数传入。
print time.asctime()

#8、时间戳 转化为 time.asctime() 结果:  Wed Oct 21 11:21:51 2015

# 如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
print time.ctime()
print time.ctime(time.time())
print time.ctime(1445397342.91)




最后,我们来对time模块进行一个总结。根据之前描述,在Python中共有三种表达方式:1)timestamp2)tuple或者struct_time 3)格式化字符串。

1  它们之间的转化如图所示:

wKioL1YnCS_TCy0UAAC1asM1lUk087.jpg

2   时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。返回时间戳方式的函数主要有time(),clock()等。
3  元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。下面列出这种方式元组中的几个元素:

Index

属性(Attribute

值(Values

0

tm_year(年)

比如2011

1

tm_mon(月)

1 - 12

2

tm_mday(日)

1 - 31

3

tm_hour(时)

0 - 23

4

tm_min(分)

0 - 59

5

tm_sec(秒)

0 - 61

6

tm_wday(weekday)

0 - 6(0表示周日)

7

tm_yday(一年中的第几天)

1 - 366

8

tm_isdst(是否是夏令时)

默认为-1


4  格式化字符串方式 :
下面列出这种表达的格式

格式

含义

备注

%a

本地(locale)简化星期名称

%A

本地完整星期名称

%b

本地简化月份名称

%B

本地完整月份名称

%c

本地相应的日期和时间表示

%d

一个月中的第几天(01 - 31)

常用

%H

一天中的第几个小时(24小时制,00 - 23)

常用

%I

第几个小时(12小时制,01 - 12)

%j

一年中的第几天(001 - 366)

%m

月份(01 - 12)

常用

%M

分钟数(00 - 59)

常用

%p

本地am或者pm的相应符

%S

秒(01 - 61)

常用

%U

一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。

%w

一个星期中的第几天(0 - 6,0是星期天)

%W

和%U基本相同,不同的是%W以星期一为一个星期的开始。

%x

本地相应日期

%X

本地相应时间

%y

去掉世纪的年份(00 - 99)

%Y

完整的年份

常用

%Z

时区的名字(如果不存在为空字符)

%%

‘%’字符





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-129407-1-1.html 上篇帖子: python 面向对象(进阶篇) 下篇帖子: 执行sh脚本错误:/bin/sh^M: bad interpreter: 没有那个文件或目录 python
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表