如何在IF语句python中检查datetime格式
假设我需要检查以下两种类型的日期时间格式:如何在IF语句python中检查datetime格式,python,datetime,Python,Datetime,假设我需要检查以下两种类型的日期时间格式: %Y-%m-%dT%H:%m:%S.%f%z %Y-%m-%d 并将其转换为此格式%Y-%m-%d%H:%m:%S UTC 我的代码目前只能检查一个条件: if val is None: val2 = val else: val2 = datetime.strptime(val, '%Y-%m-%dT%H:%M:%S.%f%z').__format__("%Y-%m-%d %H:%M:%S UTC") 我的伪代码是: if
%Y-%m-%dT%H:%m:%S.%f%z
%Y-%m-%d
%Y-%m-%d%H:%m:%S UTC
我的代码目前只能检查一个条件:
if val is None:
val2 = val
else:
val2 = datetime.strptime(val, '%Y-%m-%dT%H:%M:%S.%f%z').__format__("%Y-%m-%d %H:%M:%S UTC")
我的伪代码是:
if val is None:
val2 = val
elif val is in "%Y-%m-%d" format:
do this --> val2 = convert from "%Y-%m-%d" to "%Y-%m-%d %H:%M:%S UTC" (eg: 2020-09-01 00:00:00 UTC)
else:
val2 = datetime.strptime(val, '%Y-%m-%dT%H:%M:%S.%f%z').__format__("%Y-%m-%d %H:%M:%S UTC")
时间格式将始终是UTC的
00:00:00
,因为首先没有指定时间戳。可能如下所示:
if val is None:
val2 = val
elif len(val) == 10:
#"%Y-%m-%d" format
val2 = datetime.datetime.strptime(val, "%Y-%m-%d").__format__("%Y-%m-%d %H:%M:%S UTC")
else:
# Assuming only %Y-%m-%dT%H:%M:%S.%f%z format is possible.
# If not add if condition similar to above
val2 = datetime.strptime(val, '%Y-%m-%dT%H:%M:%S.%f%z').__format__("%Y-%m-%d %H:%M:%S UTC")
这也很好。我刚刚想到了这个解决方案
val2=val+“00:00:00 UTC”
。不确定这是否不好,但也有效。谢谢你的帮助@用户6308605都做同样的事情。您可以选择适合自己的格式。如果您的案例中的%z
表示例如+00:00
(使用:
),您可以使用-解析这两种格式,然后使用strftime转换为字符串。对我来说,这似乎更具可读性(没有条件)。