可能是我盲目或狭隘地寻找智能解决方案,但我想提取numpy.datetime64对象的时间并且找不到明显的解决方案。
当然我可以这样做:
#include <string.h>
#include <stdio.h>
#define MAX_LINE_LENGTH 80
#define MAX_TOKENS_PER_LINE 4
int main () {
int i;
char *aer[MAX_TOKENS_PER_LINE];
char s[MAX_LINE_LENGTH];
do {
if (!fgets(s, MAX_LINE_LENGTH, stdin)) return -1;
i = 0;
while (
i != MAX_TOKENS_PER_LINE
&& (aer[i] = strtok(i ? 0 : s, " \n"))
) i++;
i = 0;
while (
i != sizeof(aer) / sizeof(aer[0])
&& aer[i]
) {
fprintf(stdout, "%s\n", aer[i]);
i++;
}
}
while (aer[0]);
return 0;
}
但这仍然让我处理时区问题。
此外,仅使用numpy.datetime64将其转换为datetime并使用这些方法对我来说没有意义。或者是numpy.datetime64缺少一些主要功能/我没有按预期使用它,应该更好地回溯到datetime.datetime?
答案 0 :(得分:1)
除了我的评论之外,我还尝试了一个简单的示例来查看documentation reference
提供的格式>>> import numpy as np
>>> a = np.datetime64('2015-03-23T17:00') # 17hr local time
>>> b = np.datetime64('2015-03-23T17:00Z') # 17hr Zulu
>>> a
numpy.datetime64('2015-03-23T17:00-0400')
>>> b
numpy.datetime64('2015-03-23T13:00-0400')
>>>
>>> a.tolist().time()
datetime.time(21, 0)
>>> b.tolist().time()
datetime.time(17, 0)
>>>
这是我的语言环境的适当时差。