首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将Unix/POSIX时间戳舍入到最接近的30分钟?

如何将Unix/POSIX时间戳舍入到最接近的30分钟?
EN

Stack Overflow用户
提问于 2017-06-29 08:09:11
回答 1查看 276关注 0票数 0

我想取一个从SQL查询返回的纪元,并向上(或向下)舍入30分钟。我想在第二行代码中做到这一点。你知道怎么做吗?

代码语言:javascript
运行
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2017-06-29 08:18:38

首先将数据转换为您期望的表示形式。这可能涉及时区更改。假设t是您想要的表示,您可以替换您想要的元素:

代码语言:javascript
运行
复制
# 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时区)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44814377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档