以下是一个示例代码,可以按照给定的时区将时间戳值按照相应的日期进行汇总:
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函数。函数返回一个字典,其中键是日期,值是该日期的计数。我们打印输出结果,可以看到每个日期的计数。