【问题标题】:How do I print my timezone hour instead of timezone info with strftime in Python? [duplicate]如何在 Python 中使用 strftime 打印我的时区小时而不是时区信息? [复制]
【发布时间】:2019-08-14 20:02:02
【问题描述】:

我正在尝试使用本地时区设置打印日期/小时。

我已经成功地改变了日期对象的时区,但是当我打印它时,小时没有改变。我能得到的最多的是日期/小时的 TZ 信息?

from datetime import datetime
from datetime import timedelta
from pytz import timezone
import pytz

localtz = timezone('America/Sao_Paulo')

my_date = datetime(2019, 8, 14, 17, 55)
print(my_date)
print(my_date.strftime('%d/%m/%Y %H:%M:%S'))

my_tz_date = localtz.localize( my_date )
print(my_tz_date)
print(my_tz_date.strftime('%d/%m/%Y %H:%M:%S'))

-- produces --

2019-08-14 17:55:00
14/08/2019 17:55:00
2019-08-14 17:55:00-03:00
14/08/2019 17:55:00

我想要的是让上面的代码产生“14/08/2019 12:55:00”,就像在大多数其他编程语言上一样。我如何在 Python 中实现这一点?

【问题讨论】:

标签: python


【解决方案1】:

这是一种方法(我假设您的意思是您希望最终结果是14/08/2019 21:55:00):

from datetime import datetime
from pytz import timezone

localtz = timezone('America/Sao_Paulo')
my_date = datetime.strptime("14/08/2019 17:55", "%d/%m/%Y %H:%M")

print(my_date)
print(my_date.astimezone(timezone('America/Sao_Paulo')).strftime("%d/%m/%Y %H:%M"))
print(my_date.astimezone(timezone('America/Sao_Paulo')).strftime("%d/%m/%Y %H:%M %Z"))

输出:

2019-08-14 17:55:00                                                                                                                                                                
14/08/2019 21:55                                                                                                                                                                   
14/08/2019 21:55 -03

【讨论】:

    猜你喜欢
    • 2015-09-26
    • 1970-01-01
    • 2014-11-16
    • 2011-01-06
    • 2019-05-23
    • 2010-12-15
    • 2010-09-21
    • 2014-01-27
    • 1970-01-01
    相关资源
    最近更新 更多