Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将datetime对象转换为日期?_Python_Django_Datetime - Fatal编程技术网

Python 如何将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

尝试从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','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")