[openstack-dev] [oslo] question about oslo_utils and oslo_versonedobjects
Jay Pipes
jaypipes at gmail.com
Tue Mar 7 16:57:51 UTC 2017
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
More information about the OpenStack-dev
mailing list