【问题标题】:Error - function missing required argument 'month' (pos 2), is displayed when trying to fetch time in fixed format错误 - 函数缺少必需的参数“月”(位置 2),在尝试以固定格式获取时间时显示
【发布时间】:2020-07-06 21:46:51
【问题描述】:

我正在尝试获取以下格式的 时间,但我收到错误消息,指出函数缺少“month”所需的参数。如果有人能解决这个小困惑,那将是一个很大的帮助。

import datetime
startTimeList = ['drwxr-xr-x  3 plan 4096 Mar 21 02:00 file_listener', 'ksh', '010001', '0\n']
startTimeStr = int(startTimeList[2])
print(startTimeStr)
startTimeStr = datetime.datetime(startTimeStr)
startTime = startTimeStr.strftime("%I:%M:%S %p")
print(startTime)

预期输出:

010001
01:00:01 AM

错误显示:

function missing required argument 'month' (pos 2)

【问题讨论】:

  • 为什么是PM 而不是AM
  • 对不起。那是一个错误。现已更正

标签: python python-3.x datetime time datetime-format


【解决方案1】:

startTimeList[2] 转换为整数对您没有帮助,因为您需要再次将其转换回字符串。

datetime.datetime 需要整数参数 yearmonthday,这不是您想要做的。

您打算使用datetime.datetime.strptime 将字符串'010001' 解析为datetime.datetime 对象,然后您可以再次使用strftime 将其转换为不同格式的字符串:

import datetime

startTimeList = ['drwxr-xr-x  3 plan 4096 Mar 21 02:00 file_listener', 'ksh', '010001', '0\n']
startTimeStr = startTimeList[2]
print(startTimeStr)

startTime = datetime.datetime.strptime(startTimeStr, "%H%M%S")
startTimeResult = startTime.strftime("%I:%M:%S %p")
print(startTimeResult)

但是它给你01:00:01 AM,因为它无法知道010001 意味着pm时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 2022-01-14
    • 2022-06-28
    • 2019-10-30
    • 1970-01-01
    • 2019-02-08
    • 2021-07-22
    相关资源
    最近更新 更多