强制suds使用天真的日期时间

时间:2011-11-02 14:56:45

标签: python datetime suds

我正在尝试使用suds的网络服务,但遇到了一个问题,希望有人可以帮助我。

基本上问题是我们使用的具体方法要求我们传递一个dateTime对象来确定服务停止的日期,问题是suds正在强制-4时区(计算机的正确时区)但是,在结果字符串的末尾,托管脚本的位置,似乎我们的提供者错误地使用了解释并导致日期提前一天关闭。

我们之前尝试过这个网络服务,从php传递一个天真的“dateTime”对象(基本上像“YYYY-mm-dd HH:mm:ss”这样的字符串)并且它工作正常,这暗示时区是导致问题。

所以我想真正的问题是,如何强制suds使用天真的dateTime对象或使用不同的时区(我怀疑服务器配置了UTC时区,这就是造成问题的原因)。 / p>

提前感谢您的所有帮助

2 个答案:

答案 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

在处理日期时间方面,似乎有很多脑死亡。