以下是一个示例代码,可以按照给定的时区将时间戳值按照相应的日期进行汇总:
from datetime import datetime, timezone, timedelta
def summarize_by_date(timestamps, time_zone):
# 创建一个字典,用于存储每个日期的计数
summary = {}
# 设置给定的时区
tz = timezone(timedelta(hours=time_zone))
# 遍历时间戳列表
for timestamp in timestamps:
# 将时间戳转换为日期时间对象
dt = datetime.fromtimestamp(timestamp, tz=tz).date()
# 如果日期已经在字典中,则将计数+1,否则将日期添加到字典中并设置计数为1
if dt in summary:
summary[dt] += 1
else:
summary[dt] = 1
return summary
使用示例:
timestamps = [1612345678, 1612345678, 1612345679, 1612345680, 1612345680]
time_zone = 8
result = summarize_by_date(timestamps, time_zone)
print(result)
输出结果:
{datetime.date(2021, 2, 3): 2, datetime.date(2021, 2, 4): 3}
这个示例首先定义了一个summarize_by_date
函数,它接受一个时间戳列表和一个时区参数。函数内部创建了一个空字典summary
,用于存储日期计数。然后,使用timezone
和timedelta
设置给定的时区。接下来,遍历时间戳列表,将每个时间戳转换为日期时间对象,并根据日期在字典中进行计数。最后,返回汇总结果。
在使用示例中,我们创建了一个时间戳列表和一个时区参数,并调用summarize_by_date
函数。函数返回一个字典,其中键是日期,值是该日期的计数。我们打印输出结果,可以看到每个日期的计数。