date and time comparison how to

N

noydb

All,

I need help with a date and time comparison.

Say a user enters a date-n-time and a file on disk. I want to compare the date and time of the file to the entered date-n-time; if the file is newer than the entered date-n-time, add the file to a list to process.

How best to do? I have looked at the datetime module, tried a few things, no luck.

Is os.stat a part of it? Tried, not sure of the output, the st_mtime/st_ctime doesnt jive with the file's correct date and time. ??

Any help would be appreciated!
 
G

Gary Herron

All,

I need help with a date and time comparison.

Say a user enters a date-n-time and a file on disk. I want to compare the date and time of the file to the entered date-n-time; if the file is newer than the entered date-n-time, add the file to a list to process.

How best to do? I have looked at the datetime module, tried a few things, no luck.

Is os.stat a part of it? Tried, not sure of the output, the st_mtime/st_ctime doesnt jive with the file's correct date and time. ??

Any help would be appreciated!

Use the datetime module (distributed with Python) to compare date/times.

You can turn a filesystem time into a datetime with something like the
following:
import datetime, os, stat
mtime = os.lstat(filename)[stat.ST_MTIME] // the
files modification time
dt = datetime.datetime.fromtimestamp(mtime)
 
M

MRAB

All,

I need help with a date and time comparison.

Say a user enters a date-n-time and a file on disk. I want to compare the date and time of the file to the entered date-n-time; if the file is newer than the entered date-n-time, add the file to a list to process.

How best to do? I have looked at the datetime module, tried a few things, no luck.

Is os.stat a part of it? Tried, not sure of the output, the st_mtime/st_ctime doesnt jive with the file's correct date and time. ??

Any help would be appreciated!

Use the datetime module (distributed with Python) to compare date/times.

You can turn a filesystem time into a datetime with something like the
following:
import datetime, os, stat
mtime = os.lstat(filename)[stat.ST_MTIME] // the
files modification time
dt = datetime.datetime.fromtimestamp(mtime)
Instead of os.lstat(filename)[stat.ST_MTIME] you could use
os.path.getmtime(filename).
 
N

noydb

Thanks, I did find this...

pdf_timeStamp = time.strftime("%m%d%y%H%M%S",time.localtime(os.path.getmtime(pdf)))

.... but now how to do the comparison? Cannot just do a raw string comparison, gotta declare it a date
 
N

noydb

Thanks, I did find this...

pdf_timeStamp = time.strftime("%m%d%y%H%M%S",time.localtime(os.path.getmtime(pdf)))

.... but now how to do the comparison? Cannot just do a raw string comparison, gotta declare it a date
 
N

noydb

if I do time.time() I get 1351562187.757, do it again I get 1351562212.2650001 --- so I can compare those, the latter is later then the former. Good.SO how do I turn pdf_timeStamp (a string) above into time in this (as from time.time()) format? Am I on the right track -- is that the way to do a time comparison?
 
N

noydb

if I do time.time() I get 1351562187.757, do it again I get 1351562212.2650001 --- so I can compare those, the latter is later then the former. Good.SO how do I turn pdf_timeStamp (a string) above into time in this (as from time.time()) format? Am I on the right track -- is that the way to do a time comparison?
 
N

noydb

I guess I get there eventually!
This seems to work

pdf_timeStamp = time.strftime("%m%d%y%H%M%S",time.localtime(os.path.getmtime(pdf)))
intermediateTime = time.strptime(pdf_timeStamp, "%m%d%y%H%M%S")
pdfFile_compareTime = time.mktime(intermediateTime)

(and I'll do the same to the user entered date-n-time and then compare)


Lastly, so can anyone chime in and tell me if this is a good method or not? Is there a better way?
 
N

noydb

I guess I get there eventually!
This seems to work

pdf_timeStamp = time.strftime("%m%d%y%H%M%S",time.localtime(os.path.getmtime(pdf)))
intermediateTime = time.strptime(pdf_timeStamp, "%m%d%y%H%M%S")
pdfFile_compareTime = time.mktime(intermediateTime)

(and I'll do the same to the user entered date-n-time and then compare)


Lastly, so can anyone chime in and tell me if this is a good method or not? Is there a better way?
 
D

Dave Angel

I guess I get there eventually!
This seems to work

pdf_timeStamp = time.strftime("%m%d%y%H%M%S",time.localtime(os.path.getmtime(pdf)))
intermediateTime = time.strptime(pdf_timeStamp, "%m%d%y%H%M%S")
pdfFile_compareTime = time.mktime(intermediateTime)

(and I'll do the same to the user entered date-n-time and then compare)


Lastly, so can anyone chime in and tell me if this is a good method or not? Is there a better way?

Please read the rest of the thread in particular the message 3 hours ago
from Gary Herron

import datetime, os, stat
mtime = os.lstat(filename)[stat.ST_MTIME] // the files
modification time
dt = datetime.datetime.fromtimestamp(mtime)

Now you can compare two datetimes simply by
if dt1 < dt2:

Or you can subtract them, and examine the difference.

What's the need for all that string conversion stuff?
 
M

MRAB

I guess I get there eventually!
This seems to work

pdf_timeStamp = time.strftime("%m%d%y%H%M%S",time.localtime(os.path.getmtime(pdf)))
intermediateTime = time.strptime(pdf_timeStamp, "%m%d%y%H%M%S")
pdfFile_compareTime = time.mktime(intermediateTime)

(and I'll do the same to the user entered date-n-time and then compare)


Lastly, so can anyone chime in and tell me if this is a good method or not? Is there a better way?

Please read the rest of the thread in particular the message 3 hours ago
from Gary Herron

import datetime, os, stat
mtime = os.lstat(filename)[stat.ST_MTIME] // the files
modification time
dt = datetime.datetime.fromtimestamp(mtime)

Now you can compare two datetimes simply by
if dt1 < dt2:

Or you can subtract them, and examine the difference.

What's the need for all that string conversion stuff?
+1

Incidentally, the best order for dates is year (4 digits - remember
Y2K? :)) then month then day.
 
N

noydb

I guess I get there eventually!
This seems to work

pdf_timeStamp = time.strftime("%m%d%y%H%M%S",time.localtime(os.path.getmtime(pdf)))
intermediateTime = time.strptime(pdf_timeStamp, "%m%d%y%H%M%S")
pdfFile_compareTime = time.mktime(intermediateTime)

(and I'll do the same to the user entered date-n-time and then compare)


Lastly, so can anyone chime in and tell me if this is a good method or not? Is there a better way?



Please read the rest of the thread in particular the message 3 hours ago

from Gary Herron



import datetime, os, stat

mtime = os.lstat(filename)[stat.ST_MTIME] // the files

modification time

dt = datetime.datetime.fromtimestamp(mtime)



Now you can compare two datetimes simply by

if dt1 < dt2:



Or you can subtract them, and examine the difference.



What's the need for all that string conversion stuff?







--



DaveA

okay, I see.
But for the user supplied date... I'm not sure of the format just yet... testing with a string for now (actual date-date might be possible, tbd later), so like '10292012213000' (oct 29, 2012 9:30pm). How would you get that input into a format to compare with dt above?
 
N

noydb

I guess I get there eventually!
This seems to work

pdf_timeStamp = time.strftime("%m%d%y%H%M%S",time.localtime(os.path.getmtime(pdf)))
intermediateTime = time.strptime(pdf_timeStamp, "%m%d%y%H%M%S")
pdfFile_compareTime = time.mktime(intermediateTime)

(and I'll do the same to the user entered date-n-time and then compare)


Lastly, so can anyone chime in and tell me if this is a good method or not? Is there a better way?



Please read the rest of the thread in particular the message 3 hours ago

from Gary Herron



import datetime, os, stat

mtime = os.lstat(filename)[stat.ST_MTIME] // the files

modification time

dt = datetime.datetime.fromtimestamp(mtime)



Now you can compare two datetimes simply by

if dt1 < dt2:



Or you can subtract them, and examine the difference.



What's the need for all that string conversion stuff?







--



DaveA

okay, I see.
But for the user supplied date... I'm not sure of the format just yet... testing with a string for now (actual date-date might be possible, tbd later), so like '10292012213000' (oct 29, 2012 9:30pm). How would you get that input into a format to compare with dt above?
 
D

Dave Angel

okay, I see.
But for the user supplied date... I'm not sure of the format just yet... testing with a string for now (actual date-date might be possible, tbd later), so like '10292012213000' (oct 29, 2012 9:30pm). How would you get that input into a format to compare with dt above?

See http://docs.python.org/2/library/datetime.html

There are a number of constructors for datetime. For example,

now = datetime.datetime.now()

spec = datetime.strptime(datstring, format)

spec = datetime.datetime(year, month, day[, hour[, minute[, second[,
microsecond)

In each case, you have an optional tz for timezone. Or if possible, use
utc versions of these functions to get "greenwich" times. tz is one of
the biggest pains, and the quirks vary between operating systems and
filesystems. If possible in your environment, use utcnow,
utcfromtimestamp, etc.
 
P

Prasad, Ramit

Gary said:
All,

I need help with a date and time comparison.

Say a user enters a date-n-time and a file on disk. I want to compare the date and time of the file to the
entered date-n-time; ifthe file is newer than the entered date-n-time, add the file to a list to process.
How best to do? I have looked at the datetimemodule, tried a few things, no luck.

Is os.stat a part of it? Tried, not sure of the output, the st_mtime/st_ctime doesnt jivewith the file's
correct date and time. ??

Any help would be appreciated!

Use the datetime module (distributed with Python) to compare date/times.

You can turn a filesystem time into a datetime with something like the
following:
import datetime, os, stat
mtime = os.lstat(filename)[stat.ST_MTIME] // the
files modification time
dt = datetime.datetime.fromtimestamp(mtime)

You could also write that as:

datetime.datetime.fromtimestamp( os.path.getmtime( path ) )


Ramit P


This email is confidential and subject to important disclaimers and
conditions including on offers for the purchase or sale of
securities, accuracy and completeness of information, viruses,
confidentiality, legal privilege, and legal entity disclaimers,
available at http://www.jpmorgan.com/pages/disclosures/email.
 
A

Adam Tauno Williams

All,
I need help with a date and time comparison.
Say a user enters a date-n-time and a file on disk. I want to compare
the date and time of the file to the entered date-n-time; if the file
is newer than the entered date-n-time, add the file to a list to
process.
How best to do? I have looked at the datetime module, tried a few
things, no luck.
Is os.stat a part of it? Tried, not sure of the output, the
st_mtime/st_ctime doesnt jive with the file's correct date and
time. ??
Any help would be appreciated!

Date and time is much more complicated then people guess at first.

<http://taaviburns.ca/what_you_need_to_know_about_datetimes/datetime_transforms.html>
<http://www.whitemiceconsulting.com/2012/10/setting-course-for-utc.html>

What do you mean by "st_mtime/st_ctime doesnt jive with the file's
correct date"? Is it off my some offset, or does it completely not
match?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,065
Latest member
OrderGreenAcreCBD

Latest Threads

Top