使用箭头Python将字符串转换为日期

我正在尝试使用arrow模块将字符串转换为日期。 在转换期间,我收到此错误: arrow.parser.ParserMatchError: Failed to match '%A %d %B %Y %I:%M:%S %p %Z' when parsing 'Wednesday 06 November 2019 03:05:42 PM CDT'

根据此documentation,使用简单的一行即可完成转换:

date = arrow.get(date,'%A %d %B %Y %I:%M:%S %p %Z')

我也尝试使用datetime来执行此操作,并收到另一个错误:

ValueError: time data 'Wednesday 06 November 2019 03:27:33 PM CDT' does not match format '%A %d %B %Y %I:%M:%S %p %Z'

我想念什么?

singapore1 回答:使用箭头Python将字符串转换为日期

问题与时区有关,此处的硬编码时区有效

    switch ((int) x) {
        case 6:
            x--;
            printf("case 6,x= %f\n ",x);
            // FALLTHROUGH
        case 5:
            printf("case 5,x=%f\n ",x);
            // FALLTHROUGH
        case 4:
            printf("case 4,x);
            break;

        default:
            printf("something else,x);
,

尽管您可以将'CDT'硬编码到代码中,如his answer中的@Hamza Rashid建议,但是如果时区信息更改为其他内容,例如'CST'或也许'-0600'

为避免该潜在问题,我将改用类似以下的内容,即忽略字符串中从最后一个空格字符开始的所有内容:

import datetime

date = 'Wednesday 06 November 2019 03:05:42 PM CDT'
date = datetime.datetime.strptime(date[:date.rindex(' ')],'%A %d %B %Y %I:%M:%S %p')
print(date)  # -> 2019-11-06 15:05:42
本文链接:https://www.f2er.com/3148888.html

大家都在问