【问题标题】:How to convert date time format from '2017-10-25 15:24:38' to '25 Oct 2017 03:24 pm' in Python如何在 Python 中将日期时间格式从“2017-10-25 15:24:38”转换为“2017 年 10 月 25 日 03:24 pm”
【发布时间】:2017-10-26 22:31:53
【问题描述】:

是否有任何 python 库可以让我从 '2017-10-25 15:24:38' 到 '2017 年 10 月 25 日 03:24 pm'

在 node.js 中有一个名为 moment.js 的库来执行此操作。有没有办法在 Python 中做到这一点?

附:我正在使用机器人框架

【问题讨论】:

标签: python robotframework datetimeformatinfo


【解决方案1】:

你可以使用:

from datetime import datetime
datetime_object = datetime.strptime('2017-10-25 15:24:38', '%Y-%m-%d %H:%M:%S')
datetime_string = datetime_object.strftime('%d %b %Y %I:%M %p')

编辑: 如果您需要小写的 AM/PM:

dt_s = datetime_object.strftime('%d %b %Y %I:%M')
dt_s_ampm = datetime_object.strftime('%p').lower()
final_dt = dt_s + ' ' + dt_s_ampm

【讨论】:

  • 这几乎成功了!我需要小写的 am/pm,而您的解决方案以大写形式返回它。您的代码返回“2017 年 10 月 28 日 05:22 PM”,而我需要格式化日期为“2017 年 10 月 28 日 05:22 pm”
【解决方案2】:

在 Robot Framework 中有一个标准库DateTime 可以在这里使用。关键字Convert Date 可用于将标准日期时间字符串转换为另一种格式。 python命令strftime()Documentation使用的格式化格式在这里也适用。

在下面的机器人代码中执行格式化:

*** Settings ***
Library    DateTime    

*** Test Cases ***
TC
    ${date}    Convert Date    2017-10-25 15:24:38    result_format=%d %b %Y %I:%M %p

这会导致以下输出:

${date} = 25 Oct 2017 03:24 PM

【讨论】:

  • 我添加了 DateTime 库,但是当我使用“转换日期”时,我在转换日期下得到一条红线,表示未找到密钥定义。我正在使用 Pycharm ide。会是什么呢?我正在使用一堆其他库,它们运行良好。
  • 请记住,PyCharm 和所有其他 IDE 只是用于生成 .robot 文件的 IDE,在脚本的实际执行中不起任何作用。如果您运行上面的示例,它将在机器人框架中运行,无论 IDE 抱怨它找不到关键字。这是一个单独的问题,与此无关,因为 DateTime 库是机器人框架安装的一部分。
【解决方案3】:

如何在 python 中解析和转换时间格式:

>>> datetime(*strptime(s, "%Y-%m-%dT%H:%M:%S+0000")[0:6]).strftime("%B %d, %Y %I:%M %p")

'2013 年 7 月 16 日下午 4:14'

阅读更多关于解析和转换过程的信息:https://docs.python.org/2/library/datetime.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 2015-03-04
    相关资源
    最近更新 更多