On 03/07/2017 01:34 AM, zengchen wrote:
Hi, guys:
     I find a non-coincidence definition in Oslo,

     oslo_utils.timeutils.utcnow is defined like this:
         def utcnow(with_timezone=False):

    oslo_versonedobjects.fields.DateTimeField is defined like this
classDateTimeField(AutoTypedField): def__init__(self, tzinfo_aware=True,
**kwargs):

    a = utcnow()
    class ABC(VersionedObject):
        fields = {
            created_at = fields.DateTimeField()
        }
    b = ABC(), and fill it by db record.

    If I compare a and b.created_at,  it will raise an exception like this:
       'TypeError: can't compare offset-naive and offset-aware datetimes'
    because a's value is like this:
        datetime.datetime(2017, 3, 7, 2, 34, 50, 859002)
    b.created_at 's value is like this:
         datetime.datetime(2017, 3, 7, 2, 35, 27,
400786,*tzinfo=<iso8601.Utc>*)

   Can these two kinds of time's definition be coincident? For example:
       def utcnow(with_timezone=*False*):

       class DateTimeField(AutoTypedField):
            def __init__(self, tzinfo_aware=*False*, **kwargs):

Hi Zeng,

Yes, you will want to use utcnow(with_timezone=True) and the default ovo.fields.DateTimeField definition *or* use utcnow() and a ovo.fields.DateTimeField(tzinfo_aware=False) definition.

Best,
-jay

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to