【Python笔记】Pandas时区处理


1 时区处理

Python中时区信息来自第三方库pytz

import pytz

# 常用的时区列表(440个)
pytz.common_timezones[-5:]
# ['US/Eastern', 'US/Hawaii', 'US/Mountain', 'US/Pacific', 'UTC']

# 常用的时区集合
pytz.common_timezones_set
#  {'Asia/Shanghai', 'Asia/Urumqi', ...}

# 1.pytz查询某个的时区:可以根据国家代码查找这个国家的所有时区
pytz.country_timezones('cn') # ['Asia/Shanghai', 'Asia/Urumqi']

# 2.pytz创建时区对象
# 根据上面得到的时区信息,就可以创建指定的时区对象。
# 比如创建上海时区对象:
tz=pytz.timezone('Asia/Shanghai')

# 3.得到某个时区的时间
# 然后在创建时间对象时进行指定上面时区,就可以得到指定时区的日期时间:



import datetime

# 有两种时间类型:naive和aware
# 第一种:naive,没有表明时区的时间
datetime.datetime.now()
# datetime.datetime(2021, 1, 28, 17, 18, 56, 324868)

# 第二种:aware,有时区的时间
datetime.datetime.now(tz)
# datetime.datetime(2021, 1, 28, 17, 19, 6, 804947, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)

可以发现aware类型时间多了tzinfo标识时区
而因为我们获取当前的时候没有传入时区,为naive类型
所以与有些aware时间操作会发生异常

其实解决方法也很简单,将naive转化为aware类型就好了
怎样转化呢?我找到了这几种方式:

datetime.datetime.now()
# datetime.datetime(2021, 1, 28, 17, 29, 49, 620625)

# 方式一
datetime.datetime.now()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值