python-2.7 - 如何获取日期时间对象的最大值和最小值

标签 python-2.7 datetime strptime

我有一个包含多年数据的 csv 文件,我需要计算两个日期(最大日期和最小日期)之间的差异,所以我相信我应该提取最大日期和最小日期。

这是我的数据:

timestamp,heure,lat,lon,impact,type
2006-01-01 00:00:00,13:58:43,33.837,-9.205,10.3,1
2006-01-02 00:00:00,00:07:28,34.5293,-10.2384,17.7,1
2007-02-01 00:00:00,23:01:03,35.0617,-1.435,-17.1,2
2007-02-02 00:00:00,01:14:29,36.5685,0.9043,36.8,1
....
2011-12-31 00:00:00,05:03:51,34.1919,-12.5061,-48.9,1

我在我的代码中按如下方式进行:
 W=np.loadtxt(dataFile,delimiter=',',dtype={'names': ('datum','timestamp','lat','lon','amp','ty'),
                            'formats':('S10',     'S8'   ,'f4' ,'f4' ,'f4','S3' )})

 day = datetime.strptime(W['datum'][0],'%Y-%m-%d')
 time=[]
 for i in range(W.size):
 timestamp = datetime.strptime(W['datum'][i]+' '+W['timestamp'][i],'%Y-%m-%d %H:%M:%S')
 Tempsfinal = max(timestamp)
 Tempsinitial = min(timestamp)
 interval=int((Tempsfinal- Tempsinitial)/6)

所以,这样做我得到了错误:

datetime.datetime' object is not iterable



我该如何继续?

最佳答案

max()min()仅适用于 iterables喜欢列表。所以把所有的日期放到一个列表中,然后调用 maxmin在同一个名单上:

all_timestamps = []

for i in range(W.size):
    try:
        timestamp = datetime.strptime(W['datum'][i]+' '+W['timestamp'][i],'%Y-%m-%d %H:%M:%S')
        all_timestamps.append(timestamp)  # make a list of dates
        # Tempsfinal = max(timestamp)                 # ###
        # Tempsinitial = min(timestamp)               # move this out of loop
        # interval=int((Tempsfinal- Tempsinitial)/6)  # ### 

    except ValueError,e:
        print "error",e,"on line",i

# get min/max
Tempsfinal = max(all_timestamps)   
Tempsinitial = min(all_timestamps)

interval = Tempsfinal-Tempsinitial

print 'Start time: ', Tempsinitial
print 'End time:   ', Tempsfinal
print 'interval:   ', interval

输出:
Start time:  2006-01-01 13:58:43
End time:    2011-12-31 05:03:51
interval:    2189 days, 15:05:08

关于python-2.7 - 如何获取日期时间对象的最大值和最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44637719/

相关文章:

python - 如何在 django url 中将一个 url 限制为仅一个 View

C# Linq Datatable 按日期时间月份分组

c# - "semi-monthly"加多少天

c - strptime() 导致 EXC_BAD_ACCESS

Python - strptime 值错误 : time data does not match format '%Y/%m/%d'

python - 如何同时给字典赋值?

python - 比较 2 个巨大的 (5-6 GB) csv 文件并计算匹配和不匹配的数量。行数

java - 使用 SentiWordNet 进行情感分析

javascript - 分配要更新的日期对象

javascript - Python - 来自 Windows 机器的日期对象 - 时区问题