- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试为“GMT+01”创建一个时区对象,但是,我无法找到使用 pytz 来做到这一点的方法。我尝试使用( http://wwp.greenwichmeantime.com/time-zone/gmt-plus-1/ )表示位于该时区的城市,但它们都给出了看似奇怪且不一致的结果(它们与 LMT 相关)
>>> timezone('Africa/Algiers')
<DstTzInfo 'Africa/Algiers' PMT+0:09:00 STD>
>>> timezone('Africa/Brazzaville')
<DstTzInfo 'Africa/Brazzaville' LMT+1:01:00 STD>
>>> timezone('Africa/Conakry')
<DstTzInfo 'Africa/Conakry' LMT-1 day, 23:05:00 STD>
>>> timezone('Africa/Douala')
<DstTzInfo 'Africa/Douala' LMT+0:39:00 STD>
有谁知道一种方法来创建一个带有“GMT+01”的自定义时区,或者甚至创建一个相对于时区(“GMT”)的时区。我尝试添加 datetime.timedelta,但这(不出所料)不起作用。
最佳答案
您可以使用pytz
通过选择时区来做到这一点,然后尝试操作字符串并从datetime
中提取GMT函数中的时间,然后您可以仅选择时间GMT+x
在您的情况下,它是 GMT+1
import pytz
from datetime import tzinfo, timedelta, datetime
GMT_1_Time_Zone = []
for tz in pytz.common_timezones:
now = datetime.now(pytz.timezone(tz))
print now
if "+0100" in now.strftime("%z"):
GMT_1_Time_Zone.append((tz, "(GMT%s) %s" % (now.strftime("%z"), tz)))
print GMT_1_Time_Zone
输出:
[('Africa/Algiers', '(GMT+0100) Africa/Algiers'), ('Africa/Bangui', '(GMT+0100) Africa/Bangui'), ('Africa/Brazzaville', '(GMT+0100) Africa/Brazzaville'), ('Africa/Ceuta', '(GMT+0100) Africa/Ceuta'), ('Africa/Douala', '(GMT+0100) Africa/Douala'), ('Africa/Kinshasa', '(GMT+0100) Africa/Kinshasa'), ('Africa/Lagos', '(GMT+0100) Africa/Lagos'), ('Africa/Libreville', '(GMT+0100) Africa/Libreville'), ('Africa/Luanda', '(GMT+0100) Africa/Luanda'), ('Africa/Malabo', '(GMT+0100) Africa/Malabo'), ('Africa/Ndjamena', '(GMT+0100) Africa/Ndjamena'), ('Africa/Niamey', '(GMT+0100) Africa/Niamey'), ('Africa/Porto-Novo', '(GMT+0100) Africa/Porto-Novo'), ('Africa/Tripoli', '(GMT+0100) Africa/Tripoli'), ('Africa/Tunis', '(GMT+0100) Africa/Tunis'), ('Arctic/Longyearbyen', '(GMT+0100) Arctic/Longyearbyen'), ('Europe/Amsterdam', '(GMT+0100) Europe/Amsterdam'), ('Europe/Andorra', '(GMT+0100) Europe/Andorra'), ('Europe/Belgrade', '(GMT+0100) Europe/Belgrade'), ('Europe/Berlin', '(GMT+0100) Europe/Berlin'), ('Europe/Bratislava', '(GMT+0100) Europe/Bratislava'), ('Europe/Brussels', '(GMT+0100) Europe/Brussels'), ('Europe/Budapest', '(GMT+0100) Europe/Budapest'), ('Europe/Busingen', '(GMT+0100) Europe/Busingen'), ('Europe/Copenhagen', '(GMT+0100) Europe/Copenhagen'), ('Europe/Gibraltar', '(GMT+0100) Europe/Gibraltar'), ('Europe/Ljubljana', '(GMT+0100) Europe/Ljubljana'), ('Europe/Luxembourg', '(GMT+0100) Europe/Luxembourg'), ('Europe/Madrid', '(GMT+0100) Europe/Madrid'), ('Europe/Malta', '(GMT+0100) Europe/Malta'), ('Europe/Monaco', '(GMT+0100) Europe/Monaco'), ('Europe/Oslo', '(GMT+0100) Europe/Oslo'), ('Europe/Paris', '(GMT+0100) Europe/Paris'), ('Europe/Podgorica', '(GMT+0100) Europe/Podgorica'), ('Europe/Prague', '(GMT+0100) Europe/Prague'), ('Europe/Rome', '(GMT+0100) Europe/Rome'), ('Europe/San_Marino', '(GMT+0100) Europe/San_Marino'), ('Europe/Sarajevo', '(GMT+0100) Europe/Sarajevo'), ('Europe/Skopje', '(GMT+0100) Europe/Skopje'), ('Europe/Stockholm', '(GMT+0100) Europe/Stockholm'), ('Europe/Tirane', '(GMT+0100) Europe/Tirane'), ('Europe/Vaduz', '(GMT+0100) Europe/Vaduz'), ('Europe/Vatican', '(GMT+0100) Europe/Vatican'), ('Europe/Vienna', '(GMT+0100) Europe/Vienna'), ('Europe/Warsaw', '(GMT+0100) Europe/Warsaw'), ('Europe/Zagreb', '(GMT+0100) Europe/Zagreb'), ('Europe/Zurich', '(GMT+0100) Europe/Zurich')]
更新
深入研究问题后。我找到了两个更好的解决方案来做到这一点。
from dateutil import tz
import datetime
import pytz
from datetime import datetime
dt = datetime.strptime("2014-11-02 21:00:00", "%Y-%m-%d %H:%M:%S")
dt = pytz.timezone('Etc/GMT+1').localize(dt)
dt.isoformat()
print dt
使用解析器
from dateutil.parser import parse
dt = parse("2014-11-02 21:00:00" + "GMT+0100")
dt.isoformat()
print dt
关于python - 在 pytz 中创建新时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26742896/
pytz的documentation说: Note that this instance [pytz.timezone('UTC')] is not the same instance (or imp
我通过 Debian Buster 安装了 pytz sudo pip install pytz 安装顺利完成。但是,当我尝试 import pytz python 抛出异常 import p
我正在尝试在 python 脚本中使用 pytz,用作 hadoop 流作业的映射器。 按照另一个线程中的建议,我尝试将 pytz 打包为 zip“pytz.mod”,并使用 zipimport 加载
这个问题在这里已经有了答案: Weird timezone issue with pytz (3 个答案) Python datetime object show wrong timezone of
这个问题在这里已经有了答案: Weird timezone issue with pytz (3 个答案) Python datetime object show wrong timezone of
这个问题在这里已经有了答案: Difference between datetime.combine() and pytz.localize() (1 个回答) Django: How to mak
我正在将一个简单的日期时间对象转换为另一个时区。但它不包括 DST(夏令时)。这就是我所做的: #my datetime object datetime_from #contains: 05, 07,
>>> import pytz >>> pytz.timezone('Asia/Hong_Kong') 7 小时 37 分钟的偏差?这有点奇怪,有人遇到过同样的问题吗? 事实上我在这之间有不同的行为
这个问题已经有答案了: Weird timezone issue with pytz (3 个回答) 已关闭 4 年前。 在排除另一个问题时,我发现 pytz 中的时区“亚洲/ Jakarta ”与
在我的应用程序中,我使用普通的日期时间对象。在我的模板中: {% load tz %} {{datetimeobject|timezone:"Europe/Paris"}} {% timezone "
我在使用 Python 的 pytz 时遇到了一个非常奇怪的问题:它似乎在我的系统(MacOS X 10.8.5,系统 Python 2.7.5)上有一个不完整的时区目录。 >>> from pytz
我在使用 pytz 的 .localize() 函数时遇到了一些奇怪的问题。有时它不会对本地化的日期时间进行调整: .localize 行为: >>> tz >>> d datetime.datet
我正在阅读不完整的 pytz documentation我一直坚持理解其中的一部分。 Converting between timezones also needs special attention
我在 import pytz 不起作用的环境 (AWS Lambda) 中工作。 环境设置为 UTC。 在此环境下如何获取美国太平洋时区的当前时间? 我需要一些简单且维护成本低的东西。以某种方式强制
如果我在这样的列中有一堆日期时间(UTC): 63058 01/22/2018 11:00:00 63059 01/22/2018 12:00:00 63060 01/22/2018
虽然我确定 pytz 已安装在我的 virtualenv 中,并且我确定我的 PyCharm 项目正在使用上述 virtualenv,但 IDE 不断提示: 当我检查 virtualenv 时: (m
我有一个数据集,其中包含来自纽约的日期/时间戳,没有时区信息。不会记录 EDT 或 EST。 日期包括几年的每日数据,因此它包括: 东部夏令时时区 东部时区 我想将这些日期/时间戳转换为法兰克福时间。
我有以下命令: {'actual': {Timestamp('2013-02-20 13:30:00'): 0.93000000000000005}} 我把它改成 df: df= pd.DataFra
这个问题在这里已经有了答案: Python datetime object show wrong timezone offset (2 个答案) 关闭 8 年前。 我正在使用 '2014.2' 版本
据我了解,repr() 的目的是返回一个字符串,该字符串可用于作为 python 命令进行评估并返回相同的对象。不幸的是,pytz 似乎对这个函数不太友好,尽管它应该很容易,因为 pytz 实例是通过
我是一名优秀的程序员,十分优秀!