python中datetime怎么设置时区

如题所述

1、默认情况下,pandas中的时间序列是单纯(naive)的时区,其索引的tz字段为None。

2、可以用时区集生成日期范围。

3、从单纯到本地化的转换是通过tz_localize方法处理的。

4、一旦时间序列被本地化到某个特定时区,就可以用tz_convert将其转换到别的时区了。

5、对于上面这种时间序列(它跨越了美国东部时区的夏令时转变期),我们可以将其本地化到EST,再转换为UTC或柏林时间。

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-06-24

python中datetime设置时区步骤如下:

1、点击键盘 win+r,打开运行窗口;在窗口中输入“cmd",点击确定,打开windows命令行窗口。

2、在cmd命令行窗口中输入"python",进入python交互窗口。

3、导入datetime模块。

4、通过datetime.datetime.now()函数,获取当前时间。

5、使用datetime.datetime()函数,设置时间,并打印出来。

6、可以分别将设置时间的年、月、日、时、分、秒打印。

本回答被网友采纳
第2个回答  推荐于2017-11-21
如果你的程序要考虑时区,可以使用pytz。datetime模块中有tzinfo相关的东西,但是它是一个抽象类,文档上说:

tzinfo is an abstract base clase, meaning that this class should not be instantiated directly. You need to derive a concrete subclass, and (at least) supply implementations of the standard tzinfo methods needed by the datetimemethods you use. The datetime module does not supply any concrete subclasses of tzinfo.

上面是说tzinfo是一个抽象类,不应该被直接实例化。你需要派生子类,提供相应的标准方法。datetime模块并不提供tzinfo的任何子类。

所以你可能会使用pytz这个模块。通过easy_install可以安装。目前它的最新文档在这里。

关于时区使用的几点想法:

1. 如果你的网站可能有来自其它时区的,可能你要考虑这个问题。都是一个地区的话,还要看服务器是否与用户在一个地区,如果不在,也要考虑。
2. 因此,基本上要考虑服务器时区与用户时区。服务器时区可以配置在系统中,全局生效。而用户时区则与用户相关,可以由用户自已进行设置。
3. 在生成相关时间对象时要加入时区的信息,并在输出时进行合适的转换。

而pytz提供了创建某个时区对象的方法,如,中国时区:

>>> import pytz
>>> pytz.country_timezones('cn')
['Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing', 'Asia/Urumqi', 'Asia/Kashgar']

可以看到,中国的时区可能有:'Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing',最后两个不知道是什么。我们可能使用的'Asia/Shanghai'比较多。

因此可以创建一个时区对象:

>>> tz = pytz.timezone('Asia/Shanghai')

然后在创建时间对象时进行指定:

>>> import datetime
>>> datetime.datetime.now(tz)
datetime.datetime(2009, 2, 21, 15, 12, 33, 906000, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)
>>> datetime.datetime(2009, 2, 21, 15, 12, 33, tzinfo=tz)
datetime.datetime(2009, 2, 21, 15, 12, 33, tzinfo=<DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>)
>>> datetime.date(2009, 2, 21, tzinfo=tz)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tzinfo' is an invalid keyword argument for this function
>>> datetime.time(15, 12, 33, tzinfo=tz)
datetime.time(15, 12, 33, tzinfo=<DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>)

从上面可以看出now(), datetime(), time()都是可以指定tzinfo信息的,而date是不行的,不知道为什么。所以最好的方法是内部使用datetime对象,需要时进行时区转换,然后再输出。

时区转换:

>>> utc = pytz.utc
>>> n = datetime.datetime.now(tz)
>>> n
datetime.datetime(2009, 2, 21, 15, 16, 41, 843000, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)
>>> new = n.astimezone(utc)
>>> new
datetime.datetime(2009, 2, 21, 7, 16, 41, 843000, tzinfo=<UTC>)
>>> utc.normalize(n.astimezone(utc))
datetime.datetime(2009, 2, 21, 7, 16, 41, 843000, tzinfo=<UTC>)本回答被提问者和网友采纳

python中怎么把datetime类型转换成timestamp
time_zone 设置为 SYSTEM 的话:使用 sys_time_zone 获取的 OS 会话时区,同时使用 OS API 进行转换。对应转换函数 Time_zone_system::gmt_sec_to_TIME time_zone 设置为实际的时区的话:比如 ‘+08:00’,那么使用使用 MySQL 自己的方法进行转换。对应转换函数 Time_zone_offset::gmt_sec_to_T...

Python中的datetime模块:轻松拿捏时间操作
格式化日期时间是datetime模块的重要功能之一,允许开发者将日期时间对象转换为字符串,并按照特定格式显示结果,满足不同场景的显示需求。时区操作 处理时区在日期时间操作中至关重要。datetime模块提供timezone类,用于处理与时区相关的问题,确保跨地域应用的准确性和一致性。总结 datetime模块是Python中处理日期...

Python成为专业人士笔记-date 对象、time 对象及datetime用法深度...
在Python中,处理日期和时间对象是数据处理的重要环节。从Python 3.2开始,%z格式被支持,使得将带有时区的字符串转化为datetime对象更为便捷。对于Python 2.x版本,dateutil库是个有力的辅助工具,用于处理这种复杂的情况,如在云环境中,可能需要通过SSH命令进行安装。datetime对象通常与时区关联,以适应...

时间:time和datetime
将 datetime 对象和 timedelta 对象相加减,可以得到特定时间之前或之后的另一个时刻。获取 timedelta 对象表示的总时间间隔,可以使用 total_seconds() 方法。datetime.strptime 是一种通过已知格式解析日期的最佳方式,但每次编写日期格式化字符串可能很繁琐。此时可以使用 dateutil 中的 parser.parse() 方法...

python如何把北京时间转换为utc时间
import datetimea = datetime.datetime.today()o = datetime.timedelta(hours=8)print a-o差8个时区。

python中的time库中的strftime小时表示与正确时间不同
pip install pytz 安装pytz这个模块用于设置时区信息。然后:import datetime, pytz a=datetime.datetime.now(pytz.timezone('Asia\/Shanghai'))print(a)

datetime.now和datetime.utcnow的区别
1. 获取时间不同 `datetime.now` 获取的是本地时间。`datetime.utcnow` 获取的是协调世界时。详细解释:本地时间与协调世界时 在Python的datetime模块中,`datetime.now`函数返回当前本地时间,即考虑了时区因素的时间。这意味着返回的时间会根据用户所在的地理位置和时区有所不同。而`datetime.utcnow`...

Python获取当前时间日期
首先,Python的datetime模块提供了强大工具,如:使用datetime类获取当前日期和时间:import datetime; print(datetime.datetime.now())仅获取日期:print(datetime.date.today())仅获取时间:print(datetime.datetime.now().time())获取时区信息:print(datetime.timezone.now())arrow库则提供更直观的接口,...

python time.strptime 可以加时区吗
Z 当前时区的名称 Python time strptime()方法 描述 Python time strptime() 函数根据指定的格式把一个时间字符串解析为时间元组。语法 strptime()方法语法:time.strptime(string[, format])参数 string -- 时间字符串。format -- 格式化字符串。返回值 返回struct_time对象。说明 python中时间日期格式化...

时间戳转带时区日期
转换时间戳为日期格式,可以使用Python的`datetime`库中的`datetime.fromtimestamp()`方法。将时间戳`timestamp`传入,结果为`2023-12-11 15:36:02`。若需转换为特定时区时间,可使用`datetime.astimezone()`方法结合`datetime.timezone`与时间偏移量。使用`timedelta`进行时间加减操作,适用于计算日期...

相似回答