Saltycrane logo

SaltyCrane Blog

Notes on Python, Django, and web development on Ubuntu Linux

    

How to get the current date and time in Python

Here is an example of how to get the current date and time using the datetime module in Python:

import datetime

now = datetime.datetime.now()

print
print "Current date and time using str method of datetime object:"
print str(now)

print
print "Current date and time using instance attributes:"
print "Current year: %d" % now.year
print "Current month: %d" % now.month
print "Current day: %d" % now.day
print "Current hour: %d" % now.hour
print "Current minute: %d" % now.minute
print "Current second: %d" % now.second
print "Current microsecond: %d" % now.microsecond

print
print "Current date and time using strftime:"
print now.strftime("%Y-%m-%d %H:%M")

Results:
Current date and time using str method of datetime object:
2008-06-26 11:33:15.309236

Current date and time using instance attributes:
Current year: 2008
Current month: 6
Current day: 26
Current hour: 11
Current minute: 33
Current second: 15
Current microsecond: 309236

Current date and time using strftime:
2008-06-26 11:33


Directly from the time module documentation, here are more options to use with strftime:
Directive Meaning Notes
%a Locale's abbreviated weekday name.
%A Locale's full weekday name.
%b Locale's abbreviated month name.
%B Locale's full month name.
%c Locale's appropriate date and time representation.
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%I Hour (12-hour clock) as a decimal number [01,12].
%j Day of the year as a decimal number [001,366].
%m Month as a decimal number [01,12].
%M Minute as a decimal number [00,59].
%p Locale's equivalent of either AM or PM. (1)
%S Second as a decimal number [00,61]. (2)
%U Week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Sunday are considered to be in week 0. (3)
%w Weekday as a decimal number [0(Sunday),6].
%W Week number of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday are considered to be in week 0. (3)
%x Locale's appropriate date representation.
%X Locale's appropriate time representation.
%y Year without century as a decimal number [00,99].
%Y Year with century as a decimal number.
%Z Time zone name (no characters if no time zone exists).
%% A literal "%" character.


See also:

9 Comments — feed icon Comments feed for this post


#1 Kasper commented on 2009-04-17:

Cool. Very useful, thanks :)


#2 Ian commented on 2009-08-13:

Thank you for the concise and well laid-out example code.


#3 gary commented on 2009-10-22:

Came in very handy for a little FTP script I just wrote in Python. Thanks.


#4 python developer commented on 2009-10-22:

Thaaaaaaaaaaaaaaak you so much for the CLEAR, CLEAN and COMPLETE SOLUTION.


#5 django commented on 2009-11-16:

How convert date from string "Sat Nov 22"?


#6 Eliot commented on 2010-01-14:

django, see my other post: Python datetime / time conversions


#7 maniek commented on 2010-07-05:

Short datetime display:

print str(now)[:10]

output: 2010-07-05

print str(now)[:16]

output: 2010-07-05 20:34

print str(now)[:19]

output: 2010-07-05 20:34:26


#8 Soule commented on 2010-07-18:

Absolutely terrific.

Did the trick for me, thanks A LOT. crucial for a project im working on;

Two questions:

How to display time in specific timezone, like in my case Pacific? and Also, how to print in 12 Hour format? I got around this by using an array, but is there any official way of doing that?

You're answer asap would be tremendously appreciated - Great Blog!


#9 Eliot commented on 2010-07-18:

Soule: Thanks, glad it was helpful... To print the time in 12-Hour format use the %I formatting string with strftime. To handle timezones, I use the pytz package. For more info, see my other blog post: Converting time zones for datetime objects in Python. Hope that helps.

Post a comment

Required
Required, but not displayed
Optional

Format using Markdown. (No HTML.)
  • Code blocks: prefix each line by at least 4 spaces or 1 tab (and a blank line before and after)
  • Code span: surround with backticks
  • Blockquotes: prefix lines to be quoted with >
  • Links: <URL>
  • Links w/ description: [description](URL)
Created with Django | Hosted by Slicehost