我想取一个从SQL查询返回的纪元,并向上(或向下)舍入30分钟。我想在第二行代码中做到这一点。你知道怎么做吗?
s = row.get("values")[0][1]
s = <<<round to closest 30 mins>>>
t = datetime.fromtimestamp(float(s)/1000.)
dateFmt = "%Y-%m-%d"
timeFmt = "%H:%M"
date = t.strftime(dateFmt)
time = t.strftime(timeFmt)
发布于 2017-06-29 00:18:38
首先将数据转换为您期望的表示形式。这可能涉及时区更改。假设t
是您想要的表示,您可以替换您想要的元素:
# python 3
t.replace(minute=t.minute // 30 * 30, second=0, microsecond=0)
# python 2
t.replace(minute=t.minute / 30 * 30, second=0, microsecond=0)
我不会使用评论中关于操纵时间戳本身的解决方案,除非你确定它总是在本地时区。您可能会遇到奇数分钟班次的问题(有+xx30
和+xx45
时区)
https://stackoverflow.com/questions/44814377
复制