python標準庫:datetime模塊

原文地址:http://www.bugingcode.com/blog/python_datetime.htmlhtml

datatime 模塊題共用一些處理日期,時間和時間間隔的函數。這個模塊使用面向對象的交互取代了time模塊中整形/元組類型的時間函數。python

在這個模塊中的全部類型都是新型類,可以從python中繼承和擴展。編程

這個模塊包含以下的類型:函數

  • datetime表明了日期和一天的時間code

  • date表明日期,在1到9999之間orm

  • time 表明時間和獨立日期。htm

  • timedelta 表明兩個時間或者日期的間隔對象

  • tzinfo 實現時區支持blog

datetime 類型表明了某一個時區的日期和時間,除非有特殊說明,datetime對象使用的是「naive time」,也就是說程序中datetime的時間跟所在的時區有關聯。datetime模塊提供了一些時區的支持。繼承

datetime

給定一個時間建立datetime對象,能夠使用datetime構造函數:

import datetime

now = datetime.datetime(2003, 8, 4, 12, 30, 45)

print now
print repr(now)
print type(now)
print now.year, now.month, now.day
print now.hour, now.minute, now.second
print now.microsecond

結果以下:

$ python datetime-example-1.py
2003-08-04 12:30:45
datetime.datetime(2003, 8, 4, 12, 30, 45)
<type 'datetime.datetime'>
2003 8 4
12 30 45
0

值得注意的是默認字符串表明的是ISO 8601-style時間戳。

你也能夠使用內建工廠函數來建立datetime對象(全部的這樣的函數提供的是類方法,而不是模塊函數)。

import datetime
import time

print datetime.datetime(2003, 8, 4, 21, 41, 43)

print datetime.datetime.today()
print datetime.datetime.now()
print datetime.datetime.fromtimestamp(time.time())

print datetime.datetime.utcnow()
print datetime.datetime.utcfromtimestamp(time.time())

結果以下:

$ python datetime-example-2.py
2003-08-04 21:41:43
2003-08-04 21:41:43.522000
2003-08-04 21:41:43.522000
2003-08-04 21:41:43.522000
2003-08-04 19:41:43.532000
2003-08-04 19:41:43.532000

像在這些例子中,時間對象的默認格式是ISO 8601-style 字符串:「yyyy-mm-dd hh:mm:ss」,毫秒是可選的,能夠有也能夠沒有。

datetime類型提供另外一種格式方法,包括高度通用的strftime方法(在time模塊中能夠看到更加詳細的說明)。

import datetime
import time

now = datetime.datetime.now()

print now
print now.ctime()
print now.isoformat()
print now.strftime("%Y%m%dT%H%M%S")
$ python datetime-example-3.py
2003-08-05 21:36:11.590000
Tue Aug  5 21:36:11 2003
2003-08-05T21:36:11.590000
20030805T213611

date和time

date表明着datetime對象中日期部分。

import datetime

d = datetime.date(2003, 7, 29)

print d
print d.year, d.month, d.day

print datetime.date.today()

結果以下:

$ python datetime-example-4.py
2003-07-29
2003 7 29
2003-08-07

time也相似,他表明着時間的一部分,以毫秒級爲單位。

import datetime

t = datetime.time(18, 54, 32)

print t
print t.hour, t.minute, t.second, t.microsecond

結果以下:

$ python datetime-example-5.py
18:54:32

datetime提供datetime對象的擴展方法,同時也提供了轉換兩個對象到一個時間對象上的類方法。

import datetime

now = datetime.datetime.now()

d = now.date()
t = now.time()

print now
print d, t
print datetime.datetime.combine(d, t)

結果以下:

$ python datetime-example-6.py
2003-08-07 23:19:57.926000
2003-08-07 23:19:57.926000
2003-08-07 23:19:57.926000

轉載請標明來之:阿貓學編程

更多教程:阿貓學編程-python基礎教程

相關文章
相關標籤/搜索