Python时间处理

最近经常写爬虫爬取数据... 获取时间转换成对应类型存储。这里做下记录用过的时间操作...

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
'''
  • 时间的转换关系


    Python时间处理_第1张图片
    时间转换关系.png
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 )

你可能感兴趣的:(Python时间处理)