我正在生成来自 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
。
那么是否可以使所需的日期时间格式成为 strptime 函数中的变量参数?或者更简单的,将格式设置为与系统的日期/时间格式相同即可。
最佳答案
您可以使用 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....
关于Python 将字符串转换为可变格式的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56017542/