﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
12276	Adding a UnixDateTimeField to Models	Jean Stebens	nobody	"Hi there,

Beside the normal DateTime fields in databases, there are often legacy systems working with unix timestamps as DateTime. Having a UnixDateTimeField helps setting the Unix Timestamps over the comfortable Calender and Date choosing helper in the Django Admin. This is a preview what a UnixDateTimeField might look like: 


{{{
### Definition:

class UnixDateTimeField(models.DateTimeField):

    __metaclass__ = models.SubfieldBase

    def get_internal_type(self):
        return 'PositiveIntegerField'

    def to_python(self, value):
        if value is None or isinstance(value, datetime):
            return value
        if isinstance(value, date):
            return datetime(value.year, value.month, value.day)
        return datetime.fromtimestamp( float(value) )

    def get_db_prep_value(self, value):
        return int( time.mktime( value.timetuple() ) )

    def value_to_string(self, obj):
        value = self._get_val_from_obj(obj)
        return self.to_python(value).strftime('%Y-%m-%d %H:%M:%S')


### Usage:
class Downtime(models.Model):
    id = models.AutoField(primary_key=True, db_column='id') 
    service = models.ForeignKey(Service, db_column='id') 
    begin = UnixDateTimeField(db_column='begin')
}}}


"		closed	Database layer (models, ORM)			wontfix	unix timestamp datetime		Unreviewed	0	0	0	0	0	0
