You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Python中将12小时制时间转为24小时制(去除时区偏移)

解决12小时制转24小时制并移除时区偏移的问题

我来帮你搞定这个问题!你遇到的情况是因为dateutil.parser解析后返回的是带时区感知的datetime对象,所以输出会附带时区偏移信息。这里有两种简单的解决方法:

方法一:移除已解析datetime的时区信息

先正常解析时间,再通过replace(tzinfo=None)移除时区属性,最后用strftime格式化出你想要的格式:

from datetime import datetime
import dateutil.parser as dparser

date_str='December 31, 2020 5:59:59 PM CST'
date = dparser.parse(date_str)
# 移除时区信息
date_without_tz = date.replace(tzinfo=None)
# 格式化输出目标格式
print('date =', date_without_tz.strftime('%Y-%m-%d %H:%M:%S'))

方法二:解析时直接忽略时区

使用dparser.parseignoretz=True参数,让解析器直接忽略字符串中的时区信息,返回无时区的datetime对象:

from datetime import datetime
import dateutil.parser as dparser

date_str='December 31, 2020 5:59:59 PM CST'
# 解析时忽略时区
date = dparser.parse(date_str, ignoretz=True)
# 格式化输出
print('date =', date.strftime('%Y-%m-%d %H:%M:%S'))

两种方法最终都会输出:date = 2020-12-31 17:59:59,完全符合你的需求。另外提醒下,你的原代码用的是Python2的print语法,在Python3里需要加上括号哦~

内容的提问来源于stack exchange,提问作者VJG

火山引擎 最新活动