我正在尝试使用suds的网络服务,但遇到了一个问题,希望有人可以帮助我。
基本上问题是我们使用的具体方法要求我们传递一个dateTime对象来确定服务停止的日期,问题是suds正在强制-4时区(计算机的正确时区)但是,在结果字符串的末尾,托管脚本的位置,似乎我们的提供者错误地使用了解释并导致日期提前一天关闭。
我们之前尝试过这个网络服务,从php传递一个天真的“dateTime”对象(基本上像“YYYY-mm-dd HH:mm:ss”这样的字符串)并且它工作正常,这暗示时区是导致问题。
所以我想真正的问题是,如何强制suds使用天真的dateTime对象或使用不同的时区(我怀疑服务器配置了UTC时区,这就是造成问题的原因)。 / p>
提前感谢您的所有帮助
答案 0 :(得分:1)
我一直在努力。我在第297行编辑了Lib \ site-packages \ suds \ sax \ date.py。我注释了self .__ adjust(),现在它没有根据时区调整时间。
if isinstance(date, basestring):
part = date.split('T')
Date.__init__(self, part[0])
Time.__init__(self, part[1], 0)
self.datetime = \
dt.datetime.combine(self.date, self.time)
# self.__adjust()
return
raise ValueError, type(date)
我得到了“2013-04-16T23:00:00”,现在我得到了“2013-04-17T00:00:00”的正确值。
答案 1 :(得分:0)
我意识到这个话题很古老。但是,您可能需要检查以下内容: https://fedorahosted.org/suds/ticket/353
在处理日期时间方面,似乎有很多脑死亡。