首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >服务器python中的确切时间

服务器python中的确切时间
EN

Stack Overflow用户
提问于 2014-04-22 17:56:05
回答 2查看 64关注 0票数 0

我有一个脚本读取数据库并在特定时间发送短信给用户,我的服务器在伦敦,我的国家危地马拉在(-6小时),我使用:

代码语言:javascript
运行
复制
local_time = datetime.datetime.utcnow() + datetime.timedelta(hours=-6)

我怕日光会变,我的短信发错了

有什么办法能控制这一切吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-22 17:57:19

您可以使用库(例如pytz )来检查本地时间。

代码语言:javascript
运行
复制
>>> from pytz import timezone
>>> tz= timezone('America/Guatemala')
>>> from datetime import datetime
>>> tz.fromutc( datetime.utcnow() )
datetime.datetime(2014, 4, 22, 12, 4, 37, 2229, tzinfo=<DstTzInfo 'America/Guatemala' CST-1 day, 18:00:00 STD>)

库的准确性与底层时区数据库的准确性一样好,因此,如果它不适合您的目的,请考虑对其作出贡献。

票数 1
EN

Stack Overflow用户

发布于 2014-04-23 07:07:31

要获取给定时区中的当前时间,请执行以下操作:

代码语言:javascript
运行
复制
from datetime import datetime
import pytz # $ pip install pytz

now = datetime.now(pytz.timezone('America/Guatemala'))

示例:

代码语言:javascript
运行
复制
>>> print(now.strftime('%F %T %Z%z'))
2014-04-23 01:04:46 CST-0600

在*nix上使用tz数据库,您可以更改本地时区(stdlib专用解决方案):

代码语言:javascript
运行
复制
import os
import time
from datetime import datetime, timezone

os.environ['TZ'] = ':America/Guatemala'
time.tzset()

# to get local time
print(datetime.now(timezone.utc).astimezone().strftime('%F %T %Z%z'))
# -> 2014-04-23 01:12:38 CST-0600
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23226881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档