python中popen转变时区,python远程主机时区vs
我正在构建一个用于远程日志监视的web前端,
我不得不管理大约10个不同的地理位置,我碰到了你们中一些人已经有的3头地狱犬。在
有没有办法从远程HPUX shell变量获取以下远程信息:zoneinfo(国家/城市)
UTC+偏移量(我可以从zoneinfo轻松获得)
到目前为止,我能得到的最好的是操作系统的缩写时区
(这是否足以通过静态构建迭代跨越远程时间pytz.common_时区收集并将缩写区域反向转换为国家/城市,否则我完全走错了方向?)在
在得到国家/城市后,我可以很容易地获得补偿(我还没有)datetime.now(pytz.timezone('Asia/Dili')).strftime('%Z %z')
“TLT+0900”获取远程缩写时区
(Linux更理智
^{pr2}$
输出类似,
ZONE=“欧洲/伦敦”
而HP-UX/etc/TIMEZONE则使用缩写的时区,如
TZ=2类
我会使用echo$TZ,它会输出一些有用的数据,比如CAT-2,但是一些远程的HP uxe甚至没有配置这个,所以我不得不依赖不明确的RFC822日期date +%z
猫
我都查过pytz,日期时间。日期时间, 电子邮件.Utils但考虑到直接从缩写时间转换为zoneinfo Country/City是不可能的(pytz允许相反)
我是不是应该去尝试一下唐吉诃德的自动发现遥远时区的任务
在接受注册远程主机的用户输入时,只需添加一个国家/城市下拉列表?在
编辑(部分解决方案)
建立在@Mike Pennington答案的基础上from datetime import datetime as dt
from datetime import timedelta as td
from dateutil.relativedelta import *
from email.Utils import mktime_tz, parsedate_tz
hpux_remote_date = 'Thu Apr 28 18:09:20 TLT 2011'
utctimestamp = mktime_tz(parsedate_tz( hpux_remote_date ))
hpux_dt = dt.fromtimestamp( utctimestamp )
delta_offset = relativedelta(dt.utcnow(), hpux_dt)
hpux_utc = hpux_dt + delta_offset
# Sanity checking to ensure we are correct...
hpux_dt
datetime.datetime(2011, 4, 28, 18, 9, 20)
hpux_utc
datetime.datetime(2011, 4, 28, 9, 9, 22, 229148)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
