如何将Mysql datetime格式“2015-10-10 10:30:59.108000”转换为用户可读格式,如“2015年10月10日,下午2:31”

时间:2015-10-10 12:14:56

标签: mysql django python-2.7 django-models

6,python 2.7与MYSQL数据库。

以下是详情

settings.py

#Mysql database connection
DATABASES = {
    'default': {
        'ENGINE':'django.db.backends.mysql',
        'NAME': 'monitoringtool',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

# Internationalization
# https://docs.djangoproject.com/en/1.6/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

Models.py

class MonitoringDetail(models.Model):
    host_id = models.ForeignKey('HostDetail')
    transac_date = models.DateTimeField(auto_now_add=True, blank=True)    
    def __unicode__(self): 
        return '%s %s %s'% (self.id, self.host_id, self.transac_date)

views.py

date_objects = MonitoringDetail.objects.all()
for date_object in date_objects:
            transac_date = date_object.transac_date
            print transac_date

在上面的视图中,当我打印transac_date时,它以这种格式给出了日期:2015-10-10 08:38:25.299000+00:00 但实际上我想以这种格式约会:Oct. 10, 2015, 2:31 p.m

请帮助我,我不知道我在哪里错过了?

1 个答案:

答案 0 :(得分:1)

将Django DateTimeField规范化为python日期时间,您可以使用库提供的方法来格式化日期。您看到的日期是默认日期。这是文档的链接: https://docs.python.org/2/library/datetime.html#datetime.date.strftime

根据您的情况,您需要: print transac_date.strftime('%b. %d, %Y, %I:%m %p')