最近经常写爬虫爬取数据... 获取时间转换成对应类型存储。这里做下记录用过的时间操作...
time模块
- 时间有三种类型:
- 时间戳:时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。使用time.time()查看的时间戳是一个浮点型数据
- 结构化时间:元组的形式,共有九个元素
- 字符串时间:方便人们阅读的格式。例如:‘2017-06-21 19:31:18‘
import time
print(time.time())
print(time.localtime())
print(time.strftime("%Y-%m-%d %X"))
'''
# 执行结果:
1526267217.8965151
time.struct_time(tm_year=2018, tm_mon=5, tm_mday=14, tm_hour=11, tm_min=6, tm_sec=57, tm_wday=0, tm_yday=134, tm_isdst=0)
2018-05-14 11:06:57
'''
-
时间的转换关系
import time
print(time.localtime(time.time())) # 转换时间戳为结构化时间
print(time.mktime(time.localtime(time.time()))) # 转换结构化时间为时间戳
print(time.strftime('%Y-%m-%d', time.localtime(time.time()))) # 转换结构化时间为 字符串时间
print(time.strptime('2018-05-14', '%Y-%m-%d')) # 转换字符串时间为结构化时间
datetime模块
通过datetime模块可以灵活的操作时间,进行时间的计算
from datetime import datetime
print(datetime.now()) # 当前时间的datetime
print(datetime.now().timestamp()) # datetime转换成时间戳
# 时间戳转换为datetime fromtimestamp和utcfromtimestamp只是utc时间的区别
print(datetime.utcfromtimestamp(datetime.now().timestamp()))
print(datetime.strptime('2018-05-14 11:31:05', '%Y-%m-%d %H:%M:%S')) # 字符串时间转datetime
print(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) # datetime转字符串时间
from datetime import timedelta
now = datetime.now()
print(now + timedelta(hours=1)) # 当前时间加一个小时
print(now - timedelta(days=1)) # 当前时间减一天
print(now + timedelta(days=2, hours=12)) # 当前时间加两天十二小时
计算时间差
计算两个日期相差的天数
import time
from datetime import datetime
now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
news_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1526364011))
a = datetime.strptime(now, '%Y-%m-%d %H:%M:%S')
b = datetime.strptime(news_time, '%Y-%m-%d %H:%M:%S')
print((a - b))
当前时间减去一小时
minutes: 分钟, hours:小时, 更改对应的参数和值就可以获取对应的时间差
import datetime
sub_1_hour = (datetime.datetime.now() - datetime.timedelta(hours=1)).strftime("%Y-%m-%d %H:%M:%S")
字符串时间转datetime类型
转换字符串为datetime类型,第一个字符串时间格式要和后面的时间格式必须对应起来。
import datetime
time = '2018-05-08 01:42:57'
newsTime = datetime.datetime.strptime(time, '%Y-%m-%d %H:%M:%S')
print(newsTime )