python时间转换

这篇博客讨论了在Python中处理时间与时区的重要性,特别是在业务系统中确保正确的时间显示。内容包括使用pytz库进行时区转换,如从UTC到中国时区,并展示了如何在时间戳基础上进行加减操作。还提到了时间切片的生成和时间戳的计算方法,对于时间相关的开发工作具有参考价值。
摘要由CSDN通过智能技术生成

1.生成环境多为utc时间 

业务系统多用北京时间 ,需要指定时区,不然会员意想不到的的问题

import datetime, pytz
# 生成一个时区对象
tzone = pytz.timezone("Canada/Eastern")
# 如果不传时区对象,就默认当前用户当前所在时区的当前时间
now_time = datetime.datetime.now(tzone).strftime("%Y-%m-%d %H:%M:%S") # 加拿大系统当前的时间


## 想获取某个国家拥有的时区
以中国为例

cn_zone = pytz.country_timezones('cn')
print(cn_zone)  # ['Asia/Shanghai', 'Asia/Urumqi']

2. 自己在utc时间的基础上手动添加 

import datetime,time
t_str = '2012-03-05 16:26:23'
d = datetime.datetime.strptime(t_str, '%Y-%m-%d %H:%M:%S')
#print("d:",d)


t_str2 =   '2021-11-19 09:08:21.194'


tupleTime = datetime.datetime.strptime(t_str2, "%Y-%m-%d %H:%M:%S.%f")
print("tupleTime:",tupleTime,type(tupleTime))
print("0308")
now = datetime.datetime.now()
print("0308:",now,type(now))
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),type(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))))

delta = datetime.timedelta(minutes=-10)
n_minutes = now + delta
print("now:",now,type(now))
print("n_minutes:",n_minutes,type(n_minutes))

if n_minutes<tupleTime<now:
    print("yes")
else:
    print("no")


import uuid


print("u4",uuid.uuid4())

print("12 27")
now = datetime.datetime.now()
if 0 < now.second < 50:
    #print("1217:",now,type(now))
    #print("now.seconds:",now.second)
    print("time now:", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))

print("get hour:", time.localtime().tm_hour)
print("filename:",time.strftime('%Y-%m-%d', time.localtime(time.time()))+".xlsx")

time.strftime('%Y-%m-%d', time.localtime(time.time()))
print((datetime.datetime.now()+datetime.timedelta(days=-10)).strftime("%Y-%m-%d"))
#print(datetime.datetime.now()+datetime.timedelta(days=-1)+datetime.timedelta(hours=8)).strftime("%Y-%m-%d")
print("0308:")
def getTimeStampInRizhiyi(time_str):
    timeArray = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
    timeStamp = int(time.mktime(timeArray))
    return timeStamp*1000

now = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
print("now:",now)
print("now timestamp:",getTimeStampInRizhiyi(now))

now_delta_5minutes =(datetime.datetime.now()+datetime.timedelta(minutes=-5)+datetime.timedelta(hours=8)).strftime("%Y-%m-%d %H:%M:%S")
print("now_delta_5minutes:",now_delta_5minutes)
print("now_delta_5minutes timestamp:",getTimeStampInRizhiyi(now_delta_5minutes))
now_delta_15minutes =(datetime.datetime.now()+datetime.timedelta(minutes=-15)+datetime.timedelta(hours=8)).strftime("%Y-%m-%d %H:%M:%S")
print("now_delta_15minutes:",now_delta_15minutes)
print("now_delta_15minutes timestamp:",getTimeStampInRizhiyi(now_delta_15minutes))

print("0308")
#生成一个时间列表
endtime = getTimeStampInRizhiyi(now_delta_5minutes)
begintime= getTimeStampInRizhiyi(now_delta_15minutes)
def getTimeSliceList(begintime,endtime):
    time_slice_list=[]
    print("start:",begintime,endtime)
    while begintime < endtime:
        time_slice_list.append(begintime)
        begintime+= 60000
        #单位毫秒,大小为时间间隔,先测试时间间隔1s

        timeArray = time.localtime(begintime/1000)

        otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
        print("otherStyleTime:",otherStyleTime)
    return  time_slice_list


print(getTimeSliceList(begintime,endtime))
print(len(getTimeSliceList(begintime,endtime)))


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小金子的夏天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值