如何在Python中找到两个日期之间的差异?

时间:2019-02-09 13:21:12

标签: python-2.7 datetime

这个问题是Python 2.7。

我在CSV文件中包含以下时间数据-格式为MM-dd-yyyy HH:mm:ss:ffffff。我想找到2个日期之间的差异。两个日期之间的时间差通常以毫秒为单位。

我试图使用以下API将str转换为datetime对象,

time_info = datetime.strptime(time_data_from_csv, '%m-%d-%Y %H:%M:%S')

我收到以下错误-

ValueError: time data '"12-31-2018 12:21:12.315948"' does not match format '%m-%d-%Y %H:%M:%S'

我也尝试过-'%m-%d-%Y %H:%M:%S.%f',但无济于事(不确定这是否是正确的用法)。这里,time_data_from_csv是一个字符串变量。任何指针将不胜感激。

2 个答案:

答案 0 :(得分:1)

根据错误消息,由于[ { _id: "5ae57dba117af6dfc1e49c15", BANK: "CITI BANK", IFSC: "CITI0000005", MICR: 411037001, BRANCH: "PUNE", ADDRESS: "2413, KUMAR CAPITAL, EAST STREET, PUNE 411 001", CONTACT: 5606356, CITY: "PUNE", DISTRICT: "PUNE", STATE: "MAHARASHTRA" } ] 变量中包含双引号,因此应在格式字符串中包括双引号:

try {

    let orCond = [];
    let arrBranches = req.params.branch.split(" ");

    arrBranches.map((branch) => {
        orCond.push({ BRANCH: { $regex: '.*' + branch + '.*', $options: 'i' } });
    });

    console.log(orCond);

    const banks = await Bank.find(
        {
            $and: [
                {
                    BANK: { $regex: '.*' + req.params.bank + '.*', $options: 'i' }
                },
                {
                    $or: orCond
                }
            ]
        }
    ).lean().limit(1);

    console.log(banks);

    res.status(200).send(banks);
} catch (error) {
    console.log('error', error);
}

答案 1 :(得分:0)

我找到了罪魁祸首。正如我所怀疑的那样,双引号造成了麻烦。 我通过在格式字符串中添加双引号来解决它。感谢您的关注和帮助!

datetime.strptime(time_data_from_csv, '"%m-%d-%Y %H:%M:%S.%f"')