将时间戳转换为datetimefield并将其保存在数据库中

时间:2019-02-05 11:50:31

标签: django

假设我的时间戳如下:

ts=1549366296466

我有一个具有DateTimeField的模型,如下所示:

class MyTime(models.Model):
    date_and_time = models.DateTimeField()

现在假设存在类“ MyTime”的对象“ o”?如何使用此时间戳并将其保存到对象“ o”?

o.date_and_time = #I need your help here.
o.save()

我知道如何将其转换为“日期时间”格式。可以使用以下方法进行操作。

import datetime

#First i will convert timestamp into seconds format by dividing by 1000.0
ts = ts/1000.0
#Then i will use this 'ts' in the following line of code.
datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S') 

1 个答案:

答案 0 :(得分:1)

datetime对象有一个.utcfromtimestamp method [Python-doc]。唯一的区别是此时间戳测量的是自1970年以来的秒数,而不是毫秒数,因此我们可以使用以下方式进行转换:

from datetime import datetime

o.date_and_time = datetime.utcfromtimestamp(ts/1000)

这给我们以下两个结果:

2019-02-05 11:31:36.466000

或者对于自定义时区,我们可以使用.fromtimestamp method [Python-doc]

from dateutil import tz
from datetime import datetime

o.date_and_time = datetime.fromtimestamp(ts/1000, tz=tz.gettz('Asia/Kolkata'))

然后产生:

2019-02-05 17:01:36.466000+05:30