我正在努力将epoch时间戳转换为不同时区的日期与pytz.我想要做的是创建一个DateTime对象,它接受一个Olson数据库时区和一个纪元时间,并返回一个本地化的datetime对象.最后,我需要回答诸如"在纽约时间1350663248的几小时?"之类的问题.
这里有些东西不正常:
import datetime, pytz, time
class DateTime:
def __init__(self, timezone, epoch):
self.timezone = timezone
self.epoch = epoch
timezoneobject = pytz.timezone(timezone)
datetimeobject = datetime.datetime.fromtimestamp( self.epoch )
self.datetime = timezoneobject.localize(datetimeobject)
def hour(self):
return self.datetime.hour
if __name__=='__main__':
epoch = time.time()
dt = DateTime('America/Los_Angeles',epoch)
print dt.datetime.hour
dt = DateTime('America/New_York',epoch)
print dt.datetime.hour
Run Code Online (Sandbox Code Playgroud)
这打印相同的小时,而一个应该提前3个小时.这里出了什么问题?我是一个完整的Python初学者,任何帮助表示赞赏!
好,
时机已到,我正试图逃避拉里沃尔的噩梦,从Perl转向Python(工作).为此,我正在通过密集的自学来改造从半夜牛仔编码器,一个人的军队,非文件,我相信你知道像我这样的人(!),对一个和平的Pythonic学生的方式.我也想在这里搞笑,所以请耐心等待.:/
为此,我正在努力将我每天使用的常用代码和实用程序从Perl转换为Python.本周我将使用Perl编写的DateTime相关库加工成一个Python库,该库定义了一个暴露相同契约的类,特别是在Olson数据库的各个时区中创建DateTime对象.这是Perl中的示例.我很难理解Python中的等价物是如何完成的.请注意我在太平洋标准时间上午9:56写这个:
package MyDateTime;
use Moose;
use DateTime;
has day => (is => 'ro', isa => 'Int');
has hour => (is => 'ro', isa => 'Int');
has minute => (is => 'ro', isa => 'Int');
has month => (is => 'ro', isa => 'Int');
has second => (is => 'ro', isa => 'Int');
has timezone => (is => 'ro', isa => 'Str', required => 1);
has timestamp => (is => 'ro', isa => 'Num', required => 1);
has year …Run Code Online (Sandbox Code Playgroud)