python utc时间减5分钟

python utc时间减5分钟,python,time,Python,Time,如何用Python将时间缩短到5分钟 我有这个脚本,但我认为这可能更容易,而且整个计算时间都出错了。22:03时返回21:95,而不是21:55 import datetime from datetime import date import time utc_datetime = datetime.datetime.utcnow() jaar = date.today().year maand = time.strftime("%m") dag = time.strftime("%d") u

如何用Python将时间缩短到5分钟

我有这个脚本,但我认为这可能更容易,而且整个计算时间都出错了。22:03时返回21:95,而不是21:55

import datetime
from datetime import date
import time

utc_datetime = datetime.datetime.utcnow()
jaar = date.today().year
maand = time.strftime("%m")
dag = time.strftime("%d")
uurutc = utc_datetime.strftime("%H")
autc = utc_datetime.strftime("%M")
minuututc = int(5 * round(float(autc)/5)-5)
uur = time.strftime("%H")
a = time.strftime("%M")
minuut = int(5 * round(float(a)/5)-5)

timestamp = ''.join(str(x) for x in [jaar, maand, dag, uurutc, minuututc])

print timestamp
代码实际应该做什么:

我们的本地时间是UTC+2,但我只需要UTC时间,所以输出必须是UTC。 第二,时间需要比当前时间早5分钟,然后四舍五入。 字符串的输出格式应为:YYYYMMDDHHMM

例如:

当地时间:12:53>输出脚本:10:45

当地时间:17:07>输出脚本:15:00

当地时间:08:24>输出脚本:06:15

谁能帮我解决这个问题

谢谢大家!

使用:

使用:


根据上面的注释,使用timedelta类:

import datetime

now = datetime.datetime.now()
five_mins = datetime.timedelta(minutes=5)

five_mins_ago = now - five_mins

print five_mins_ago

编辑:其他答案更好,因为它涵盖了舍入

根据上面的评论,使用timedelta类:

import datetime

now = datetime.datetime.now()
five_mins = datetime.timedelta(minutes=5)

five_mins_ago = now - five_mins

print five_mins_ago

编辑:其他答案更好,因为它涵盖了四舍五入

您可以使用
d=d.replace(minute=n*(d.minute//n))
四舍五入到
n
分钟:

>>> d = datetime(2014, 4, 12, 0, 7); print(d.replace(minute=5*(d.minute // 5)))
2014-04-12 00:05:00
>>> n = 15
>>> d = datetime(2014, 4, 12, 10, 53); print(d.replace(minute=n*(d.minute//n)))
2014-04-12 10:45:00
>>> d = datetime(2014, 4, 12, 15, 7); print(d.replace(minute=n*(d.minute//n)))
2014-04-12 15:00:00
>>> d = datetime(2014, 4, 12, 6, 24); print(d.replace(minute=n*(d.minute//n)))
2014-04-12 06:15:00

您可以使用
d=d.replace(minute=n*(d.minute//n))
四舍五入到
n
分钟:

>>> d = datetime(2014, 4, 12, 0, 7); print(d.replace(minute=5*(d.minute // 5)))
2014-04-12 00:05:00
>>> n = 15
>>> d = datetime(2014, 4, 12, 10, 53); print(d.replace(minute=n*(d.minute//n)))
2014-04-12 10:45:00
>>> d = datetime(2014, 4, 12, 15, 7); print(d.replace(minute=n*(d.minute//n)))
2014-04-12 15:00:00
>>> d = datetime(2014, 4, 12, 6, 24); print(d.replace(minute=n*(d.minute//n)))
2014-04-12 06:15:00

您是否查看了
datetime.timedelta
?您的示例四舍五入到一刻钟,而不是5分钟,例如
10:53
->
10:45
,而不是
10:50
。您是否查看了
datetime.timedelta
?您的示例四舍五入到一刻钟,而不是5分钟,例如
10:53
10:45
,不是
10:50
。谢谢,如何提取这5分钟?谢谢,但我需要从中提取5分钟对我来说很好!最后一个问题,如何得到输出:YYYYMMDDHHMM?谢谢,如何提取5分钟的时间?谢谢,但我需要从中提取5分钟的时间对我来说很好!最后一个问题,如何在:YYYYMMDDHHMM中获得这个输出?虽然这段代码可能会解决这个问题,但如何以及为什么解决这个问题会真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请编辑您的答案,添加解释,并说明适用的限制和假设。它似乎与公认的答案有很大重叠。指出差异并解释为什么你认为语法上的细微变化更可取是很有用的。虽然这段代码可能会解决这个问题,但如何以及为什么解决这个问题将真正有助于提高你的文章质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请编辑您的答案,添加解释,并说明适用的限制和假设。它似乎与公认的答案有很大重叠。指出这些差异并解释为什么您认为语法上的细微差异更可取是很有用的。