【发布时间】:2017-06-19 11:16:32
【问题描述】:
我正在寻找构建一个 Python 应用程序,该应用程序将从 Android 手机接收时区信息,我想将其转换为 datetime tzinfo 对象(例如,由 pytz 实现)。
这个 Java 小程序显示了TimeZone 可用格式的“样本”:
import java.util.TimeZone;
public class GetLocalTimeZone {
public static void main(String []args) {
TimeZone local_tz = TimeZone.getDefault();
System.out.println(local_tz.getDisplayName());
System.out.println(local_tz.getID());
System.out.println(local_tz.getRawOffset());
}
}
打印出来的
Central European Time
Europe/Amsterdam
3600000
根据TimeZone documentation,getRawOffset() 函数返回“添加到 UTC 以获得该时区的标准时间的时间量(以毫秒为单位)”。这似乎是实例化 datetime.tzinfo 对象的一个很好的起点。
问题是,虽然我可以使用getID() 方法的输出实例化一个,例如
import pytz
amsterdam = pytz.timezone('Europe/Amsterdam')
我不确定如何使用数字偏移量实例化 timezone,即使我将其转换为小时。例如,
pytz.timezone('+01:00')
产生UnknownTimeZoneError。我将如何从 UTC 的偏移量(以毫秒为单位)创建一个 datetime.tzinfo 对象? (我也对其他实现持开放态度,例如 Arrow 和 Pendulum)。
【问题讨论】:
标签: python date datetime timezone pytz