python utc时间如何取整_如何在Djang中取整时区软件日期

我试图将默认时区datetime转换为localtime,并在Django视图中将时间取整为15分钟。我有以下循环时间函数:def roundTime(dt=None, dateDelta=timedelta(minutes=1)):

"""Round a datetime object to a multiple of a timedelta

dt : datetime.datetime object, default now.

dateDelta : timedelta object, we round to a multiple of this, default 1 minute.

Author: Thierry Husson 2012 - Use it as you want but don't blame me.

Stijn Nevens 2014 - Changed to use only datetime objects as variables

"""

roundTo = dateDelta.total_seconds()

if dt == None:

dt = datetime.now()

seconds = (dt - dt.min).seconds

# // is a floor division, not a comment on following line:

rounding = (seconds+roundTo/2) // roundTo * roundTo

return dt + timedelta(0,rounding-seconds,-dt.microsecond)

以下是我迄今为止所做的努力:

^{pr2}$

但最后一行给出了一个错误:error: astimezone() cannot be applied to a naive datetime

当我使用:local_time = timezone.localtime(timezone.now())

我确实得到了正确的当地时间,但由于某些原因,我无法通过以下方式来确定时间:mytime = roundTime(local_time,timedelta(minutes=15)).strftime('%H:%M:%S')

它与上面的datetime.now()一起工作。在

我想出了一个不漂亮但很有用的代码:mytime = timezone.localtime(timezone.now())

mytime = datetime.strftime(mytime, '%Y-%m-%d %H:%M:%S')

mytime = datetime.strptime(str(mytime), '%Y-%m-%d %H:%M:%S')

mytime = roundTime(mytime,timedelta(minutes=15)).strftime('%H:%M:%S')

mytime = datetime.strptime(str(mytime), '%H:%M:%S')

有更好的解决办法吗?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值