Python 如何将datetime对象转换为日期?
尝试从datetime对象中获取日期时出现以下错误:Python 如何将datetime对象转换为日期?,python,django,datetime,Python,Django,Datetime,尝试从datetime对象中获取日期时出现以下错误: must be string, not datetime.datetime 时间戳的格式为 Tue, 26 Apr 2016 22:12:00 +0530 以下是models.py: class Order(models.Model): ORDER_STATUS = ( ('created' , 'Created') , ('paid','Paid'), ('shipped','S
must be string, not datetime.datetime
时间戳的格式为
Tue, 26 Apr 2016 22:12:00 +0530
以下是models.py:
class Order(models.Model):
ORDER_STATUS = (
('created' , 'Created') ,
('paid','Paid'),
('shipped','Shipped'),
('refunded','Refunded'),
)
status = models.CharField(max_length=120 , choices=ORDER_STATUS , default='created')
cart = models.ForeignKey(Cart)
user = models.ForeignKey(UserCheckout , null=True)
address = models.ForeignKey(UserAddress , related_name='useraddress' , null=True)
Order_total_price = models.DecimalField(max_digits=10 , decimal_places=2)
order_id = models.CharField(max_length=20 , null=True , blank=True )
timestamp = models.DateTimeField(auto_now_add=True , auto_now=False)
def __unicode__(self):
return str(self.user)
class SubOrder(models.Model):
order = models.ForeignKey('orders.Order')
store = models.ForeignKey(Store)
store_order_id=models.CharField(max_length=300)
items = models.ManyToManyField(StoreProduct,through=StoreOrderItem)
read = models.BooleanField(default=False)
store_order_amount = models.DecimalField(max_digits=50 , decimal_places=2)
下面是对象类:
import datetime
class ChartData(object):
@classmethod
def check_order_data(self):
data = {'order_numbers': [], 'order_price': [] , 'date' : []}
orders = SubOrder.objects.all()
for order in orders:
print str(order.order.timestamp)
print datetime.datetime.strptime(order.order.timestamp, "%Y-%m-%d %H:%M:%S.%f")
data['order_numbers'].append(str(order.id))
data['date'].append(order.order.timestamp)
data['order_price'].append(int(order.store_order_amount))
print data
return data
以下是回溯:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Python27\lib\site-packages\django\views\generic\base.py" in view
71. return self.dispatch(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\views\generic\base.py" in dispatch
89. return handler(request, *args, **kwargs)
File "C:\Users\lenovo\Desktop\Grooved2\grooved\src\store\views.py" in get
560. data = ChartData.check_order_data()
File "C:\Users\lenovo\Desktop\Grooved2\grooved\src\store\utils.py" in check_order_data
15. print datetime.datetime.strptime(order.order.timestamp, "%Y-%m-%d %H:%M:%S.%f")
如何解决上述错误?提前感谢。函数必须接收日期字符串和字符串格式
如果要从datetime.datetime对象获取字符串,应使用函数。
datetime.datetime.StrTime()
是将字符串
转换为日期时间
对象
datetime.datetime.strftime()
用于将datetime
对象转换为指定的string
datetime
到string
:
>>> datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
'2016-04-26 22:22:39.720617'
字符串
至日期时间
:
>>> datetime.datetime.strptime('2016-04-26 22:22:39.720617', '%Y-%m-%d %H:%M:%S.%f')
datetime.datetime(2016, 4, 26, 22, 22, 39, 720617)
为了获得date out-datetime对象,我使用了以下方法:
datetime.datetime.strftime(order.order.timestamp, "%Y-%m-%d")