Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

date-time comparison, aware vs naive

36 views
Skip to first unread message

noydb

unread,
Dec 10, 2012, 2:57:37 PM12/10/12
to
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
dt = datetime.datetime.fromtimestamp(mtime)

I am having problems with the comparison, that line is failing. 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'. The user-input date-time has a parameter type of date (calender and time tool supplied to enter), but is it 'aware'? The comparison is not working so I think that it is not aware. I can successfully compare two pdf file times against one another. So, is there a way to cast that user-input value (prints as 2/10/2012 3:19:57 PM) as an 'aware' date-time? How? And can anyone confirm that my findings are probably correct?

Thanks for any help.

John Gordon

unread,
Dec 10, 2012, 3:22:34 PM12/10/12
to
In <21eb3e6f-9a82-47aa...@googlegroups.com> noydb <jenn....@gmail.com> writes:

> 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
> dt = datetime.datetime.fromtimestamp(mtime)

> I am having problems with the comparison, that line is failing.

What line? You haven't posted any comparison line of code here.

Please post the actual code you're using, instead of telling us about it.

--
John Gordon A is for Amy, who fell down the stairs
gor...@panix.com B is for Basil, assaulted by bears
-- Edward Gorey, "The Gashlycrumb Tinies"

noydb

unread,
Dec 10, 2012, 3:31:35 PM12/10/12
to

Steven D'Aprano

unread,
Dec 10, 2012, 3:52:55 PM12/10/12
to
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?



--
Steven

noydb

unread,
Dec 10, 2012, 4:02:38 PM12/10/12
to
Forgive me, I was just copying the code from the original reply to my orignal question.

Forgive me for not posting the comparison line, it goes something like
if one_time > another_time:

Forgive me - the 'aware' time vs 'naive' time refers to documentation I found for the datetime module, see second sentence down http://docs.python.org/2/library/datetime.html

Dave Angel

unread,
Dec 10, 2012, 4:12:10 PM12/10/12
to pytho...@python.org
http://docs.python.org/2/library/datetime
""" 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.

--

DaveA

noydb

unread,
Dec 10, 2012, 4:20:51 PM12/10/12
to pytho...@python.org, d...@davea.name

>
> >
>
> >
>
> http://docs.python.org/2/library/datetime
>
> """ 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.
>
>
>
> --
>
>
>
> DaveA

Fair enough, thanks

noydb

unread,
Dec 10, 2012, 4:20:51 PM12/10/12
to comp.lan...@googlegroups.com, pytho...@python.org, d...@davea.name

>
> >
>
> >
>
> http://docs.python.org/2/library/datetime
>
> """ 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.
>
>
>
> --
>
>
>
> DaveA

Fair enough, thanks
0 new messages