Если ваша строка даты в UTC:
from datetime import datetime
import calendar
import pytz
datestring = '20111122050940.086000'
ymdhms, usec = datestring.split('.')
dt = pytz.utc.localize(datetime.strptime(ymdhms, '%Y%m%d%H%M%S'))
calendar.timegm(dt.utctimetuple()) + float(usec) / 1000000.
отпечатки 1321938580.086
(независимо от часового пояса вашей системы)
Для печати в формате UTC:
dt_utc = pytz.utc.localize(datetime.utcfromtimestamp(1321938580.086))
# datetime.datetime(2011, 11, 22, 5, 9, 40, 86000, tzinfo=<UTC>)
dt_utc.strftime('%Y%m%d%H%M%S.%f')
# '20111122050940.086000'
если вы находитесь в другом часовом поясе, вы должны сначала преобразовать его:
dt_hu = dt_utc.astimezone(pytz.timezone('Europe/Budapest'))
# datetime.datetime(2011, 11, 22, 6, 9, 40, 86000, tzinfo=<DstTzInfo 'Europe/Budapest' CET+1:00:00 STD>)
, а затем распечатайте его:
dt_hu.strftime('%Y%m%d%H%M%S.%f')
# '20111122060940.086000'
Это работает независимо от вашего системного часового пояса.