【python】详解time模块中 UTC世界时间、时间戳、字符串三者的转换

# 本地时间 转换 为时间戳
import time
import pytz
import datetime
date_=datetime.datetime(2018,6,19,20,55,00)
timestamp2=time.mktime(date_.timetuple())   #date_.timetuple() 将datetime格式的转化为time模块的tuple格式
print(timestamp2)

#时间戳转换为本地时间

ltime=time.localtime(1529112900)  #time.struct_time(tm_year=2018, tm_mon=6, tm_mday=16, tm_hour=9, tm_min=35, tm_sec=0, tm_wday=5, tm_yday=167, tm_isdst=0)
timeStr=time.strftime("%Y-%m-%d %H:%M:%S", ltime)
print(timeStr)





# UTCS时间转换为时间戳 2018-07-13T16:00:00Z
def utc_to_local(utc_time_str, utc_format='%Y-%m-%dT%H:%M:%SZ'):
    local_tz = pytz.timezone('Asia/Chongqing')      #定义本地时区
    local_format = "%Y-%m-%d %H:%M:%S"              #定义本地时间format

    utc_dt = datetime.datetime.strptime(utc_time_str, utc_format)       #讲世界时间的格式转化为datetime.datetime格式
    local_dt = utc_dt.replace(tzinfo=pytz.utc).astimezone(local_tz)     #想将datetime格式添加上世界时区,然后astimezone切换时区:世界时区==>本地时区
    #time_str = local_dt.strftime(local_format)                         #将datetime格式转化为str—format格式
    #return int(time.mktime(time.strptime(time_str, local_format)))     #运用mktime方法将date—tuple格式的时间转化为时间戳;time.strptime()可以得到tuple的时间格式
    return int(time.mktime(local_dt.timetuple()))                       #返回当地时间戳


# 本地时间转换为UTC  传入的本地时间戳 1531411200
def local_to_utc(local_ts, utc_format='%Y-%m-%dT%H:%MZ'):
    local_tz = pytz.timezone('Asia/Chongqing')    #定义本地时区
    local_format = "%Y-%m-%d %H:%M:%S"               #定义本地时间format

    time_str = time.strftime(local_format, time.localtime(local_ts))    #首先将本地时间戳转化为时间元组,用strftime格式化成字符串
    dt = datetime.datetime.strptime(time_str, local_format)             #将字符串用strptime 转为为datetime中 datetime格式
    local_dt = local_tz.localize(dt, is_dst=None)                       #给时间添加时区,等价于 dt.replace(tzinfo=pytz.timezone('Asia/Chongqing'))
    utc_dt = local_dt.astimezone(pytz.utc)                              #astimezone切换时区
    return utc_dt.strftime(utc_format)                                  #返回世界时间格式

print(utc_to_local('2018-07-13T16:00:00Z', utc_format='%Y-%m-%dT%H:%M:%SZ'))
print(local_to_utc(1531411200, utc_format='%Y-%m-%dT%H:%MZ'))

'''
1529412900.0
2018-06-16 09:35:00
1531497600
2018-07-12T16:00Z
'''
  • 9
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值