1、什么是时间戳?
时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。它也被称为Unix时间戳(Unix Timestamp)。
2、time的常用方法
import time,datetime
时间有三种展现方式:时间戳,时间元组,格式化的时间
print(time.time())#当前时间戳
>>> print(time.time())
1565010351.027377
print(time.strftime(’%Y-%m-%d %H:%M:%S’))#格式化的时间
Python time strftime() 函数接收以时间元组,并返回以可读字符串表示的当地时间。
>>> import time
>>> print(time.strftime('%Y-%m-%d %H:%M:%S'))
2019-08-05 21:07:59
print(time.gmtime())#获取标准时区的时间元组,如果传入了时间戳,就是把时间戳转换成时间元组
>>> print(time.gmtime())
time.struct_time(tm_year=2019, tm_mon=8, tm_mday=5, tm_hour=13, tm_min=10, tm_sec=30, tm_wday=0, tm_yday=217, tm_isdst=0)
3、 datetime常用方法
使用datetime和time获取当前时间
>>> from datetime import datetime
>>> n =datetime.now()
>>> print(n)
2019-08-05 21:15:02.117116
now = datetime.datetime.now()
d1 = now - datetime.timedelta(hours=1)#获取前一小时
d2 = now - datetime.timedelta(days=1)#获取前一天
>>> import datetime
>>> now = datetime.datetime.now()
>>> d1 = now - datetime.timedelta(hours=1)
>>> print(d1)
2019-08-05 20:17:20.527996
>>> d2 = now - datetime.timedelta(days=1)
>>> print(d2)
2019-08-04 21:17:20.527996
4、将时间转换成时间戳
将时间数据2019-8-6 9:15:0转换成时间戳,
具体的操作过程为:
- 利用strptime()函数将时间转换成时间数组!!
- 利用mktime()函数将时间数组转换成时间戳!!
>>> import time
>>> dt = '2019-8-6 9:15:0'
>>> timeArray = time.strptime(dt,'%Y-%m-%d %H:%M:%S')#将时间转换为时间数组
>>> print(timeArray)
time.struct_time(tm_year=2019, tm_mon=8, tm_mday=6, tm_hour=9, tm_min=15, tm_sec=0, tm_wday=1, tm_yday=218, tm_isdst=-1)
>>> print(timeArray[0])
2019
>>> timestamp = time.mktime(timeArray)#将时间数组转换为时间戳
>>> print(timestamp)
1565054100.0
>>>
5、将时间戳转换成时间
在时间戳转换成时间中,首先需要将时间戳转换成localtime,再转换成时间的具体格式:
- 利用localtime()函数将时间戳转化成localtime的格式
- 利用strftime()函数重新格式化时间
>>> import time
>>> timestamp = 1565054100.0
>>> localtime = time.localtime(timestamp)#利用localtime()函数将时间戳转化成时间数组
>>> print(localtime)
time.struct_time(tm_year=2019, tm_mon=8, tm_mday=6, tm_hour=9, tm_min=15, tm_sec=0, tm_wday=1, tm_yday=218, tm_isdst=0)
>>> dt = time.strftime('%Y:%m:%d %H:%M:%S',localtime)#利用strftime()函数重新格式化时间
>>> print(dt)
2019:08:06 09:15:00