强制肥皂泡使用naive datetime



我正在尝试使用泡沫来消费web服务,但是遇到了一个问题,希望这里有人可以帮助我。

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

我们之前已经尝试过这个web服务,从php传递一个朴素的"dateTime"对象(基本上是一个像"YYYY-mm-dd HH:mm:ss"这样的字符串),它工作得很好,这暗示了时区是导致问题的原因。

所以我猜真正的问题是,我怎么能强迫suds使用朴素的dateTime对象或使用不同的时区(我怀疑服务器配置了UTC时区,这就是导致问题的原因)。

提前感谢您的帮助

我对此很纠结。我在第297行编辑了Libsite-packagessudssaxdate.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"。

我意识到这个帖子很古老。但是,您可能需要检查以下内容:https://fedorahosted.org/suds/ticket/353

Suds在处理日期时间方面似乎相当脑残。

最新更新