我正在使用Django 1.11和Postgres 9.4。
我该如何转换
2018-01-01T00:00:00+03:00
转换为可用于如下查询集的日期时间对象
Tracking.objects.filter(created_at__gte=input_datetime)
我可以在Z时间使用
input_datetime = datetime.datetime.strptime("2019-11-01T01:36:56.233032Z", "%Y-%m-%dT%H:%M:%SZ")
但是我如何才能使其在当前时间(似乎具有时区)下工作。 我试过了,但是没用。
input_datetime = datetime.datetime.strptime('2018-01-01T00:00:00+03:00','%Y-%m-%dT%H:%M:%S.%f%z')
这是我的模型。py
class Tracking(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
答案 0 :(得分:2)
您实际上可以为此使用Pythons标准datetime
库。这样的东西:
from datetime import datetime
a = '2018-01-01T00:00:10+03:00'
datetime.datetime(2018, 1, 1, 0, 0, 10, tzinfo=datetime.timezone(datetime.timedelta(seconds=10800)))
它将为您提供一个datetime.datetime
对象,以后可以将其用于水磨床。
答案 1 :(得分:1)
使用标准datetime
模块,它应该可以工作:
datetime.strptime('2018-01-01T00:00:00+03:00', '%Y-%m-%dT%H:%M:%S%z')
使用Django的时区模块,我得到的最接近的匹配格式是:
timezone.datetime.strptime('2018-01-01T00:00:00+0300', '%Y-%m-%dT%H:%M:%S%z')
此示例在偏移部分2018-01-01T00:00:00+ 0300 中不包含:
。