0

我正在从 JSON 文件导入数据,它的日期格式如下 1/7/11 9:15

为了接受这个日期,最好的变量类型/格式是什么?如果不是,那么完成这项任务的最有效方法是什么?

谢谢。

4

2 回答 2

1

“为了接受这个日期,最好的变量类型/格式是什么?”

日期时间字段。

“如果不是,完成这项任务的最有效方法是什么?”

您应该使用Python 内置库中的方法:datetime.strptimedatetime

>>> from datetime import datetime
>>> import json

>>> json_datetime = "1/7/11 9:15"  # still encoded as JSON
>>> py_datetime = json.loads(json_datetime)  # now decoded to a Python string
>>> datetime.strptime(py_datetime, "%m/%d/%y %I:%M")  # coerced into a datetime object
datetime.datetime(2011, 1, 7, 9, 15)

# Now you can save this object to a DateTimeField in a Django model.
于 2013-09-16T04:46:00.977 回答
0

如果您查看https://docs.djangoproject.com/en/dev/ref/models/fields/#datetimefield,它会说 django 使用了http://docs.python 中记录的 python 日期时间库。 org/2/library/datetime.html

这是一个工作示例(带有许多调试打印和分步说明:

from datetime import datetime

json_datetime = "1/7/11 9:15"
json_date, json_time = json_datetime.split(" ")
print json_date
print json_time
day, month, year = map(int, json_date.split("/")) #maps each string in stringlist resulting from split to an int
year = 2000 + year #be ceareful here! 2 digits for a year may cause trouble!!! (could be 1911 as well)
hours, minutes = map(int, json_time.split(":"))
print day
print month
print year
my_datetime = datetime(year, month, day, hours, minutes)
print my_datetime

#Generate a json date:
new_json_style = "{0}/{1}/{2} {3}:{4}".format(my_datetime.day, my_datetime.month, my_datetime.year, my_datetime.hour, my_datetime.minute)
print new_json_style
于 2013-09-14T19:36:26.673 回答