视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2020-11-27 14:39:51 责编:小采
文档

Python项目中很多时候会需要将时间在Datetime格式和TimeStamp格式之间转化,又或者你需要将UTC时间转化为本地时间,本文总结了这几个时间之间转化的函数,供大家参考。

一、Datetime转化为TimeStamp

def datetime2timestamp(dt, convert_to_utc=False):
 ''' Converts a datetime object to UNIX timestamp in milliseconds. '''
 if isinstance(dt, datetime.datetime):
 if convert_to_utc: # 是否转化为UTC时间
 dt = dt + datetime.timedelta(hours=-8) # 中国默认时区
 timestamp = total_seconds(dt - EPOCH)
 return long(timestamp)
 return dt

二、TimeStamp转化为Datetime

def timestamp2datetime(timestamp, convert_to_local=False):
 ''' Converts UNIX timestamp to a datetime object. '''
 if isinstance(timestamp, (int, long, float)):
 dt = datetime.datetime.utcfromtimestamp(timestamp)
 if convert_to_local: # 是否转化为本地时间
 dt = dt + datetime.timedelta(hours=8) # 中国默认时区
 return dt
 return timestamp

三、当前UTC时间的TimeStamp

def timestamp_utc_now():
 return datetime2timestamp(datetime.datetime.utcnow())

四、当前本地时间的TimeStamp

def timestamp_now():
 return datetime2timestamp(datetime.datetime.now())

五、UTC时间转化为本地时间

# 需要安装python-dateutil
# Ubuntu下:sudo apt-get install python-dateutil
# 或者使用PIP:sudo pip install python-dateutil
from dateutil import tz
from dateutil.tz import tzlocal
from datetime import datetime
 
# get local time zone name
print datetime.now(tzlocal()).tzname()
 
# UTC Zone
from_zone = tz.gettz('UTC')
# China Zone
to_zone = tz.gettz('CST')
 
utc = datetime.utcnow()
 
# Tell the datetime object that it's in UTC time zone
utc = utc.replace(tzinfo=from_zone)
 
# Convert time zone
local = utc.astimezone(to_zone)
print datetime.strftime(local, "%Y-%m-%d %H:%M:%S")

下载本文
显示全文
专题