相关疑难解决方法(0)

如何自动获取当地时区的时区偏移量?

我试图自动获取本地时区偏移但是遇到了麻烦.我试过了:

print time.timezone/3600
Run Code Online (Sandbox Code Playgroud)

这会得到(当前错误的)偏移,因为它不会自动调整夏令时和非夏令时.

我也尝试过:

now_utc = pytz.utc.localize(datetime.datetime.now())
now_mst = now_utc.astimezone(pytz.timezone('US/Mountain'))
Run Code Online (Sandbox Code Playgroud)

这会得到正确的偏移值,但我想自动设置'US/Mountain'部分,所以我不必手动输入任何东西来获得偏移量.

有没有办法获得正确的偏移量,可以自动调整DST和非DST?

我将在不同地理位置的多台服务器上运行此脚本,如果可以,我想自动获取tz偏移量.

python time timezone datetime

11
推荐指数
1
解决办法
1万
查看次数

Python:给定 UTC 的当前时间,您如何确定特定时区中一天的开始和结束时间?

我在玩 Google App Engine,我了解到时区固定为 UTC。我想确定用户本地时区当天的开始和结束时间。所以基本上,给定 UTC 的当前时间,您如何确定当天的开始和结束时间,同时考虑到夏令时转换。

我有一些笨重的示例代码。请注意,我意识到如果我手动指定日期,我也可以指定明天的日期,但它们是示例,我想以编程方式确定它。我的主要问题是,如果我将 timedelta 添加到带有时区的日期时间,然后对其进行标准化(就像 pytz 文档中所建议的那样),我会得到一个日期时间,在夏令时切换期间关闭一小时。

代码中没有提到,但最终目的是将这些时间转换回 UTC,这就是为什么了解时区很重要的原因。

#!/usr/bin/python

import datetime
from pytz.gae import pytz

hobart_tz = pytz.timezone('Australia/Hobart')

utc_dt = pytz.utc.localize(datetime.datetime.utcnow())
hobart_dt = utc_dt.astimezone(hobart_tz)

# create a new datetime for the start of the day and add a day to it to get tomorrow.
today_start = datetime.datetime(hobart_dt.year, hobart_dt.month, hobart_dt.day)
today_start = hobart_tz.localize(today_start)
today_end = hobart_tz.normalize(today_start + datetime.timedelta(days=1))
print 'today:', today_start
print ' next:', today_end
print
# gives:
# today: 2011-08-28 00:00:00+10:00
# next: 2011-08-29 …
Run Code Online (Sandbox Code Playgroud)

python timezone datetime utc

5
推荐指数
1
解决办法
3341
查看次数

Python:从strftime打印时区

我想打印时区.我用%Z但不打印:

import datetime
now = datetime.datetime.now()
print now.strftime("%d-%m-%Y")
print now.strftime("%d-%b-%Y")
print now.strftime("%a,%d-%b-%Y %I:%M:%S %Z") # %Z doesn't work
Run Code Online (Sandbox Code Playgroud)

我可能需要导入pytz吗?

python time date

5
推荐指数
3
解决办法
1万
查看次数

如何在 Python 中获取文件的 ctime 和/或 mtime,包括时区?

基于我问的这个相关问题答案,很明显datetime.fromtimestamp(os.path.getctime())在 Python 3.4 中不返回时区感知日期时间对象,但是,根据一些调查,我还发现 HFS+ 文件系统上的 OS X 10.9(例如)似乎与 ctimes 一起维护时区(除非 gls 从我的本地时区和夏令时推断时区):

$ gls -l --full-time -c

-rw-------  1 myuser staff 538 2015-01-04 17:12:57.000000000 +0100 fileone
-rwxr-xr-x 17 myuser staff 578 2015-05-20 06:41:07.000000000 +0200 filetwo
Run Code Online (Sandbox Code Playgroud)

(我正在使用ls 的 GNU 版本

如何从 ctime 获取时区并将其插入/组合到 datetime 对象中?

(我也想为 mtime 提供相同的答案,我认为它会相似)。

python timezone datetime

2
推荐指数
1
解决办法
2088
查看次数

标签 统计

python ×4

datetime ×3

timezone ×3

time ×2

date ×1

utc ×1