python: atom datetime conversion

from time import *
import re

TZ=9
def to_internet(date):
    d = strftime('%Y-%m-%dT%H:%M:%S%z')
    return d[:-2] + ':' + d[-2:]

def from_internet(datestring):
    m=re.match('^(.+)T(.+)\+(.+)$',datestring)
#    print m.group(1),   m.group(2),    m.group(3)
    m=re.match('^(.+)\+(.+)\:(.+)$',datestring)
    d = strptime(m.group(1),'%Y-%m-%dT%H:%M:%S')
    diff = int(m.group(2)) - TZ
    d2 = localtime( mktime(d) + diff * 60 * 60 )
    print "*",d, diff,d2
    return d2


print to_internet(gmtime())
print to_internet(localtime())
print from_internet(to_internet(localtime()))
print from_internet('2008-09-05T07:30:41+00:00')
print asctime( from_internet('2008-09-05T07:30:41+09:00') )
print strftime("%Y/%m/%d %a %H:%M:%S", from_internet('2008-09-05T07:30:41+09:00') )
 

hdknr@debiansept:~/feed$ python ad.py
2008-09-09T18:11:07+09:00
2008-09-09T18:11:07+09:00
* (2008, 9, 9, 18, 11, 7, 1, 253, -1) 0 (2008, 9, 9, 18, 11, 7, 1, 253, 0)
(2008, 9, 9, 18, 11, 7, 1, 253, 0)
* (2008, 9, 5, 7, 30, 41, 4, 249, -1) -9 (2008, 9, 4, 22, 30, 41, 3, 248, 0)
(2008, 9, 4, 22, 30, 41, 3, 248, 0)
* (2008, 9, 5, 7, 30, 41, 4, 249, -1) 0 (2008, 9, 5, 7, 30, 41, 4, 249, 0)
Fri Sep  5 07:30:41 2008
* (2008, 9, 5, 7, 30, 41, 4, 249, -1) 0 (2008, 9, 5, 7, 30, 41, 4, 249, 0)
2008/09/05 Fri 07:30:41

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中