【发布时间】:2019-10-14 17:51:55
【问题描述】:
我正在使用datetime.strptime从字符串中解析和获取日期时间值,格式为%Y-%m-%dT%H:%M:%SZ,但数据很脏,有时没有时间参数,有时在yyyy/mm/dd中接收格式而不是 yyyy-mm-dd 格式。我可以想到 hacky 正则表达式和 try-catch 方法来解析它并获得我需要的东西,但是有没有一种干净的方法来使用 datetime.strptime 并获取 '%Y-%m-%dT%H:%M 中的日期时间:%SZ' 格式为 00:00:00 或在没有时间信息的情况下作为默认时间?
目前在做:
time = datetime.strptime(data['time'], '%Y-%m-%dT%H:%M:%SZ').replace(tzinfo=pytz.utc)
如果数据格式不正确,则会引发错误。
【问题讨论】:
-
脏数据会导致脏、不雅和 hacky 的代码。自从计算机存在以来,这是一条规则。又名“启发式解决方案”。