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)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部