如何在Python C API中最好地解析日期字符串?

时间:2015-05-02 08:54:12

标签: python-c-api

不幸的是,Python C API中似乎没有PyDateTime_FromString()(相当于例如PyFloat_FromString())。如果我必须将日期字符串解析为datetime.datetime类型,有没有人想出什么是理想的解决方法?

1 个答案:

答案 0 :(得分:2)

如果PyDateTime_FromTimestamp不够,您可以直接调用strptime之类的任何Python方法:

PyObject *datetimeType = (PyObject *) PyDateTimeAPI->DateTimeType;
PyObject *datetime = PyObject_CallMethod(datetimeType, "strptime", "ss",
                                            "11-11-11 11:11:11", //date_string
                                            "%y-%m-%d %H:%M:%S"); //format

但请记住,PyDateTimeAPI->DateTimeType不是文档化API的一部分,因此最终可能会在任何时候中断。我用Python版本2.7.9和3.4.2测试了这个。相反,您应该在C代码中执行等效的from datetime import datetime