Python以可变格式将字符串转换为日期时间

时间:2019-05-07 07:26:14

标签: python python-3.x

我正在从API生成字符串形式的日期和时间信息。默认情况下,生成的字符串采用系统的日期/时间格式(在我的情况下为Win 10)。例如,如果您在计算机中使用MM / DD / YYYY HH:MM:SS tt,则生成的字符串将类似于“ 05/07/2019 06:00:00 AM”。

出于比较目的,我随后将使用datetime.datetime.strptime(i,"%m/%d/%Y %I:%M:%S %p")将字符串转换为日期时间格式。这完全可以正常工作,但是如果其他人的系统日期/时间格式不同于“ MM / DD / YYYY HH:MM:SS tt”运行我的脚本,则他将得到不匹配错误,因为该字符串无法再通过%m/%d/%Y %I:%M:%S %p

那么是否有可能使所需的datetime格式成为strptime函数中的变量参数?甚至更简单,只需将格式设置为与系统的日期/时间格式相同即可。

1 个答案:

答案 0 :(得分:1)

您可以使用try和except来解决此问题(尽管可能有另一种方法)

try:
  datetime.datetime.strptime(i,"%m/%d/%Y %I:%M:%S %p")
except TypeError:
  try:
     datetime.datetime.strptime(i,"%d/%m/%Y %I:%M:%S %p")
  except:
     try:
         datetime.datetime.strptime(i,"%d/%m/%y %I:%M:%S %p")
# and so on....