原创文章,转载请注明出处
一.术语解释
1. 时间戳
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。
2. UTC
协调世界时,又称世界统一时间、世界标准时间、国际协调时间。由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。
协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。
3. DST
DST是Daylight Saving Time的缩写,称为阳光节约时,在我国称为夏时制,又称夏令时,是一种为节约能源而人为调整地方时间的制度。
4. 格式化日期
将时间按照一定的格式进行格式化。
例如:格式化成2016-03-20 11:45:39形式、格式化成Sat Mar 28 22:24:24 2016形式
5. 时间元组
很多Python函数用一个元组装起来的9组数字处理时间:time.struct_time(tm_year=2019, tm_mon=4, tm_mday=26, tm_hour=17, tm_min=4, tm_sec=4, tm_wday=4, tm_yday=116, tm_isdst=0)
image.png
二. 时间戳
1. 获取当前时间戳
import time
def get_timestamp():
"""
获取当前时间戳
:return:1556274213.430633
"""
return time.time()
输出结果:1556274213.430633
2. 时间戳和UTC时间相互转换
import datetime
import pytz
def timestamp_to_utc(timestamp):
"""
时间戳转换为utc时间
:param timestamp:
:return: 2019-04-26 16:12:58
"""
return datetime.datetime.utcfromtimestamp(timestamp).isoformat()
def utc_to_timestamp(utc, utc_format='%Y-%m-%dT%H:%M:%S'):
"""
utc时间转换为时间戳
:param utc: utc时间
:param utc_format: utc时间格式
:return:时间戳:1556294670
"""
# 定义本地时区
local_tz = pytz.timezone('Asia/Shanghai')
# 将utc时间的格式转化为datetime.datetime格式
utc_dt = datetime.datetime.strptime(utc, utc_format)
# 将datetime格式添加上世界时区,然后astimezone切换时区:世界时区==>本地时区
local_dt = utc_dt.replace(tzinfo=pytz.utc).astimezone(local_tz)
# 转换为时间元组
timetuple = local_dt.timetuple()
return int(time.mktime(timetuple))
3. 时间戳和格式化日期相互转换
import time
def timestamp_to_formattime(timestamp):