White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

strptimeのエラー2

あらすじ

  • crochetでstrptimeの引数変えたらエラー
  • 直接呼び出す分には問題無し
  • Ubuntu 8.10のpython2.5.2で問題有。MacOS X 10.5.6のpython2.5.2では問題無し

toDate.py

#! /usr/bin/env python 
# -*- coding:utf-8 -*- 
import datetime 


def getLocalTime(timezoneName):
    if timezoneName == "JP":
        return 9
    else:
        return 0

def toDate(date,str):
    from time import strptime
    dates = strptime(date,str)
    dt = datetime.datetime(*dates[0:7])+datetime.timedelta(hours=getLocalTime("JP"))

    return dt

toDateTest.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import toDate,datetime

date = "2008-02-24T06:39:37+00:00"
apiDate = "Thu Jan 22 05:19:28 +0000 2009"
apiFormat = "%a %b %d %H:%M:%S +0000 %Y"
scrapingFormat = "%Y-%m-%dT%H:%M:%S+00:00"
print toDate.toDate(apiDate,apiFormat)
print datetime.datetime.today()

これを実行した限りでは

2009-01-22 14:19:28.000003
2009-01-25 10:22:29.493650

と出るのだけど、crochet.pyでimport toDateTestってやると

ValueError: time data did not match format: data=Thu Jan 22 05:19:28 +0000 2009 fmt=%a %b %d %H:%M:%S +0000 %Y

ってなる。

どっか環境変数のせいかね?でも手動でstrptime実装した方が早い気がしてきた。