How to check if a datetime object is localized with pytz?

How do I determine if localization is needed?

From datetime docs:

  • a datetime object d is aware iff:

    d.tzinfo is not None and d.tzinfo.utcoffset(d) is not None
    
  • d is naive iff:

    d.tzinfo is None or d.tzinfo.utcoffset(d) is None
    

Though if d is a datetime object representing time in UTC timezone then you could use in both cases:

self.date = d.replace(tzinfo=pytz.utc)

It works regardless d is timezone-aware or naive.

Note: don’t use datetime.replace() method with a timezone with a non-fixed utc offset (it is ok to use it with UTC timezone but otherwise you should use tz.localize() method).

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)