By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,504 Members | 2,596 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,504 IT Pros & Developers. It's quick & easy.

datetime to timestamp

P: n/a
Hi.

How can I convert a python datetime to a timestamp? It's easy to convert
a timestamp to datetime (datetime.datetime.fromtimestamp(), but the
other way around...?)

-Simen

Aug 11 '06 #1
Share this Question
Share on Google+
5 Replies


P: n/a
On 11/08/2006 11:10 PM, Simen Haugen wrote:
Hi.

How can I convert a python datetime to a timestamp? It's easy to convert
a timestamp to datetime (datetime.datetime.fromtimestamp(), but the
other way around...?)

-Simen
Is the timetuple() method what you want?

#>>import datetime
#>>n = datetime.datetime.now()
#>>n
datetime.datetime(2006, 8, 11, 23, 32, 43, 109000)
#>>n.timetuple()
(2006, 8, 11, 23, 32, 43, 4, 223, -1)

Cheers,
John
Aug 11 '06 #2

P: n/a
On 11/08/2006 11:35 PM, John Machin wrote:
On 11/08/2006 11:10 PM, Simen Haugen wrote:
>Hi.

How can I convert a python datetime to a timestamp? It's easy to convert
a timestamp to datetime (datetime.datetime.fromtimestamp(), but the
other way around...?)

-Simen

Is the timetuple() method what you want?

#>>import datetime
#>>n = datetime.datetime.now()
#>>n
datetime.datetime(2006, 8, 11, 23, 32, 43, 109000)
#>>n.timetuple()
(2006, 8, 11, 23, 32, 43, 4, 223, -1)

Aaaarrrggghhh no it's not what you want -- looks like you have to do the
arithmetic yourself, starting with toordinal()
Aug 11 '06 #3

P: n/a
John Machin <sj******@lexicon.netwrote:
>On 11/08/2006 11:35 PM, John Machin wrote:
>On 11/08/2006 11:10 PM, Simen Haugen wrote:
>>How can I convert a python datetime to a timestamp? It's easy to convert
a timestamp to datetime (datetime.datetime.fromtimestamp(), but the
other way around...?)
Is the timetuple() method what you want?
[ ... ]
Aaaarrrggghhh no it's not what you want -- [ ... ]
It is if you only want it to the second. It just needs a time.mktime():
>>n = time.time()
n
1155307613.4550381
>>d = datetime.datetime.fromtimestamp(n)
time.mktime(d.timetuple())
1155307613.0

(timetuple() is responsible for the loss of the fractional part.)

--
\S -- si***@chiark.greenend.org.uk -- http://www.chaos.org.uk/~sion/
___ | "Frankly I have no feelings towards penguins one way or the other"
\X/ | -- Arthur C. Clarke
her nu becomež se bera eadward ofdun hlęddre heafdes bęce bump bump bump
Aug 11 '06 #4

P: n/a
[Simen Haugen]
>>How can I convert a python datetime to a timestamp? It's easy to convert
a timestamp to datetime (datetime.datetime.fromtimestamp(), but the
other way around...?)
[John Machin]
>Is the timetuple() method what you want?

#>>import datetime
#>>n = datetime.datetime.now()
#>>n
datetime.datetime(2006, 8, 11, 23, 32, 43, 109000)
#>>n.timetuple()
(2006, 8, 11, 23, 32, 43, 4, 223, -1)
[also John]
Aaaarrrggghhh no it's not what you want
Yes, it is ;-)
-- looks like you have to do the arithmetic yourself, starting with toordinal()
It's just one step from the time tuple:

import time
time.mktime(some_datetime_object.timetuple())

The datetime module intended to be an island of relative sanity.
Because the range of dates "timestamps" can represent varies across
platforms (and even "the epoch" varies), datetime doesn't even try to
produce timestamps directly -- datetime is more of an alternative to
"seconds from the epoch" schemes. Because datetime objects have
greater range and precision than timestamps, conversion is
problem-free in only one direction. It's not a coincidence that
that's the only direction datetime supplies ;-)
Aug 11 '06 #5

P: n/a

Tim Peters wrote:
[Simen Haugen]
>How can I convert a python datetime to a timestamp? It's easy to convert
a timestamp to datetime (datetime.datetime.fromtimestamp(), but the
other way around...?)

[John Machin]
Is the timetuple() method what you want?

#>>import datetime
#>>n = datetime.datetime.now()
#>>n
datetime.datetime(2006, 8, 11, 23, 32, 43, 109000)
#>>n.timetuple()
(2006, 8, 11, 23, 32, 43, 4, 223, -1)

[also John]
Aaaarrrggghhh no it's not what you want

Yes, it is ;-)
-- looks like you have to do the arithmetic yourself, starting with toordinal()

It's just one step from the time tuple:

import time
time.mktime(some_datetime_object.timetuple())
Thanks, Tim. In mitigation, yer honour, I'd like to draw your attention
to the local time (23:32); the defendant was rushing to do the OP's
RTFantasticM for him before retiring for the night, and not doing it
well enough :-)
Cheers,
John

Aug 11 '06 #6

This discussion thread is closed

Replies have been disabled for this discussion.