date-time comparison, aware vs naive

Dave Angel d at
Mon Dec 10 22:12:10 CET 2012

On 12/10/2012 03:52 PM, Steven D'Aprano wrote:
> On Mon, 10 Dec 2012 11:57:37 -0800, noydb wrote:
>> I want to compare a user entered date-and-time against the date-and-time
>> of a pdf file.  I posted on this (how to get a file's date-time) before,
>> was advised to do it like:
>> import datetime, os, stat
>> mtime = os.lstat(filename)[stat.ST_MTIME]   // the files modification 
>> time
> What language are you writing? Using // for comments is not Python.
>> dt = datetime.datetime.fromtimestamp(mtime)
>> I am having problems with the comparison, that line is failing.
> You haven't shown us the comparison line. Would you like us to guess what 
> it does?
> My guess is that you are doing this:
> if mtime is dtime: ... 
> Am I close?
> If not, please forgive me, my crystal ball is often faulty.
>> I think
>> I may have figured out the issue -- I think it is a matter of the file's
>> time being 'aware' and the user-input date-time being 'naive'.
> "Aware" of what?
""" An object of type *time* or *datetime* may be naive or *aware"

aware refers to time-zone and daylight savings time, such political
ephemerals.  Two times can only be changed if one knows they're both in
the same one, or if one knows precisely what each is.
naive assumes the former, while aware trusts the latter.

To the OP:  please specify your python version, your OS, and show your
source. Also show the complete error traceback.  And while you're at it,
it might be useful to know the type of drive the file is on, since
Windows uses local times on FAT32 partitions, and gmt on NTFS  partitions.

I suspect you're on Windows, so I can't help you with this nonsense.  But I can at least help you ask a clear question.



More information about the Python-list mailing list