如何从numpy.datetime64对象中获取一小时,一分钟等?

时间:2015-04-23 21:09:26

标签: python datetime numpy

可能是我盲目或狭隘地寻找智能解决方案,但我想提取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?

1 个答案:

答案 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)
>>> 

这是我的语言环境的适当时差。