【问题标题】:How to select date and hour in the list of datetime in Python 3.5如何在 Python 3.5 的日期时间列表中选择日期和小时
【发布时间】:2016-09-18 07:25:52
【问题描述】:

我有一个包含年、月、日、小时、分钟、秒和tzinfo的日期时间列表,例如

In [1]:TimeCreate[0:4]
Out[1]:
[datetime.datetime(2011, 1, 1, 0, 0, 2),
 datetime.datetime(2011, 1, 1, 0, 2, 2),
 datetime.datetime(2011, 1, 1, 0, 27, 2),
 datetime.datetime(2011, 1, 1, 1, 0, 2)]

我只想在日期时间中选择日期和小时,因此,我可以将前三项作为一个类,即我可以总结每个小时下的重复次数。我怎样才能获得以下格式?

In [2]:TimeCreate[0:4]
Out[2]:
[datetime.datetime(2011, 1, 1, 0),
 datetime.datetime(2011, 1, 1, 0),
 datetime.datetime(2011, 1, 1, 0),
 datetime.datetime(2011, 1, 1, 1)]

因此,我可以获得信息,例如在 0 小时重复 3 次。
非常感谢

【问题讨论】:

标签: python datetime


【解决方案1】:

使用datetime.replace

import datetime

list_dt = [ datetime.datetime(2011, 1, 1, 0, 0, 2),
            datetime.datetime(2011, 1, 1, 0, 2, 2),
            datetime.datetime(2011, 1, 1, 0, 27, 2),
            datetime.datetime(2011, 1, 1, 1, 0, 2)] 

adjust_dt = [dt.replace(minute=0, second=0) for dt in list_dt] 

使用collections.Counter统计频率,

import collections

count = collections.Counter(adjust_dt)

print(count)
# Output
Counter({datetime.datetime(2011, 1, 1, 0, 0): 3, datetime.datetime(2011, 1, 1, 1, 0): 1})

【讨论】:

  • 感谢@sparkandshine,我创建了双向表,记录了从 2011 年 1 月 1 日到 2015 年 12 月 31 日每小时重复特定分类变量(我的对象)的记录你的解决方案。
【解决方案2】:

您可以从 datetime.datetime 类中提取任何内容

导入日期时间

obj = datetime.datetime(2011, 1, 1, 0, 0, 2)

打印(obj.day, obj.hour)

【讨论】:

  • 感谢@Ishaq Khan
猜你喜欢
  • 2010-12-17
  • 1970-01-01
  • 2019-04-04
  • 1970-01-01
  • 1970-01-01
  • 2019-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多