1.简介
在编写代码时,往往涉及时间、日期、时间戳的相互转换。
2.示例
# 引入模块
import time, datetime
2.1 str类型的日期转换为时间戳 1 # 字符类型的时间
2 tss1 = '2013-10-10 23:40:00'
3 # 转为时间数组
4 timeArray = time.strptime(tss1, "%Y-%m-%d %H:%M:%S")
5 print timeArray
6 # timeArray可以调用tm_year等
7 print timeArray.tm_year #
8 # 转为时间戳
9 timeStamp = int(time.mktime(timeArray))
10 print timeStamp #
11
12
13 # 结果如下
14 time.struct_time(tm_year=2013, tm_mon=10, tm_mday=10, tm_hour=23, tm_min=40, tm_sec=0, tm_wday=3, tm_yday=283, tm_isdst=-1)
15 2013
16 1381419600 2.2 更改str类型日期的显示格式 1 tss2 = "2013-10-10 23:40:00"
2 # 转为数组
3 timeArray = time.strptime(tss2, "%Y-%m-%d %H:%M:%S")
4 # 转为其它显示格式
5 otherStyleTime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)
6 print otherStyleTime # 2013/10/10 23:40:00
7
8 tss3 = "2013/10/10 23:40:00"
9 timeArray = time.strptime(tss3, "%Y/%m/%d %H:%M:%S")
10 otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
11 print otherStyleTime # 2013-10-10 23:40:00 2.3 时间戳转换为指定格式的日期 # 使用time
timeStamp = 1381419600
timeArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)
print otherStyleTime # 2013--10--10 23:40:00
# 使用datetime
timeStamp = 1381419600
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")
print otherStyleTime # 2013--10--10 15:40:00 2.4 获取当前时间并且用指定格式显示 1 # time获取当前时间戳
2 now = int(time.time()) #
3 timeArray = time.localtime(now)
4 print timeArray
5 otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)
6 print otherStyleTime
7
8 # 结果如下
9 time.struct_time(tm_year=2018, tm_mon=8, tm_mday=11, tm_hour=9, tm_min=51, tm_sec=17, tm_wday=5, tm_yday=223, tm_isdst=0)
10 2018--08--11 09:51:17
11
12
13 # datetime获取当前时间,数组格式
14 now = datetime.datetime.now()
15 print now
16 otherStyleTime = now.strftime("%Y--%m--%d %H:%M:%S")
17 print otherStyleTime
18
19 # 结果如下:
20 2018-08-11 09:51:17.362986
21 2018--08--11 09:51:17
===========================
time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(X))
>>> X=1480585800.00
>>> print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(X))
2016-12-01 17:50:00
#!
/usr/bin/env python
#coding=utf-8
import,time,import,datetime
d1=datetime.datetime.now()
d3=d1 +datetime.timedelta(days =10)
printstr(d3)
printd3.ctime()
---------------------
#coding=utf-8
import time
import datetime def yes_time():
#获取当前时间
now_time = datetime.datetime.now()
#当前时间减去一天 获得昨天当前时间
yes_time = now_time + datetime.timedelta(days=-1)
#格式化输出
yes_time_str = yes_time.strftime('%Y-%m-%d %H:%M:%S')
print yes_time_str # 2017-11-01 22:56:02 def dif_time():
#计算两个时间之间差值
now_time = datetime.datetime.now()
now_time = now_time.strftime('%Y-%m-%d %H:%M:%S')
d1 = datetime.datetime.strptime('2017-10-16 19:21:22', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime(now_time, '%Y-%m-%d %H:%M:%S')
#间隔天数
day = (d2 - d1).days
#间隔秒数
second = (d2 - d1).seconds
print day #
print second #13475 注意这样计算出的秒数只有小时之后的计算额 也就是不包含天之间差数 def unix_time():
#将python的datetime转换为unix时间戳
dtime = datetime.datetime.now()
un_time = time.mktime(dtime.timetuple())
print un_time #1509636609.0
#将unix时间戳转换为python 的datetime
unix_ts = 1509636585.0
times = datetime.datetime.fromtimestamp(unix_ts)
print times #2017-11-02 23:29:45