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

标签 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

那么是否可以使所需的日期时间格式成为 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/

相关文章:

python - 如何在 Python3 中找到按数字顺序排列的列表中的数字?

python - 如何使用 boost.python 将预填充的 "unsigned char*"缓冲区传递给 C++ 方法?

python - 如何从 FormData 请求多个参数?

python - 格式化二维网格中的路径打印

python - 将两个数组合并为数组列表

python - 创建具有多边的图

python - 如何在 Flask 中模拟 HTTP 身份验证进行测试?

python - 为什么负索引为零不起作用?

linux - 如何使在 UBUNTU 上使用 cx_Freeze 构建的 PYQT4 应用程序在 Linux SUSE 上运行。

python - 如何正确导入简历