您可以使用以下两种方法:
>>> import datetime
>>> dtnow = datetime.datetime.now();dtutcnow = datetime.datetime.utcnow()
>>> dtnow
datetime.datetime(2013, 11, 12, 9, 10, 48, 404000)
>>> dtutcnow
datetime.datetime(2013, 11, 12, 15, 10, 48, 404000)
>>> delta = dtnow - dtutcnow
>>> delta
datetime.timedelta(-1, 64800)
>>> hh,mm = divmod((delta.days * 24*60*60 + delta.seconds + 30) // 60, 60)
>>> hh,mm
(-6, 0)
>>> "%s%+02d:%02d" % (dtnow.isoformat(), hh, mm)
'2013-11-12T09:10:48.404000-6:00'
或这个:
>>> import datetime, pytz # 3rd Party
>>> datetime.datetime.now(pytz.timezone('US/Central')).strftime('%Y-%m-%dT%H:%M:%S.%f%z')
'2013-11-12T09:15:20.688000-0600'
>>>
第二种方法的主要优点是它使您的时间字符串“时区感知”。从文档:
有两种日期和时间对象:“naive”和“aware”。这种区别是指对象是否具有任何时区、夏令时或其他类型的算法或政治时间调整的概念。一个简单的 datetime 对象是表示协调世界时 (UTC)、当地时间还是其他时区的时间完全取决于程序,就像特定数字是否表示米、英里或质量一样取决于程序。朴素的日期时间对象易于理解和使用,但代价是忽略了现实的某些方面。
希望这可以帮助!