1. 程式人生 > >python的datetime模組功能詳解

python的datetime模組功能詳解

  1. >>> dir(datetime)  
  2. ['MAXYEAR''MINYEAR''__doc__''__name__''__package__''date''datetime',  
  3.  'datetime_CAPI''time''timedelta''tzinfo']  
包含的資料:
MAXYEAR -- 能表示的最大年份
MINYEAR -- 能表示的最小年份
datetime_CAPI  -- C語言api訪問的物件,可以help(datetime.datetime_CAPI)

包含的物件:
    date -- 日期物件
    datetime -- 日期時間物件

    time -- 時間物件
    timedelta -- 日期時間間隔物件

    tzinfo -- 時區資訊物件

  1. >>> dir(datetime.date)  
  2. ['__add__''__class__''__delattr__''__doc__''__eq__''__format__', '__ge  
  3. __', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '
  4. __ne__', '__new__', '__radd__', '__reduce__
    ', '__reduce_ex__', '__repr__', '__rs  
  5. ub__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', 'c  
  6. time', 'day', 'fromordinal', 'fromtimestamp', 'isocalendar', 'isoformat', 'isowe  
  7. ekday', 'max', 'min', 'month', 'replace', 'resolution', 'strftime', 'timetuple',  
  8.  'today''toordinal'
    'weekday''year']  
包含的資料:
day -- 日號數值
month -- 月份數值
year -- 年份數值
max = datetime.date(9999, 12, 31)-- 最大的年、月、日的數值
min = datetime.date(1, 1, 1) -- 最小的年、月、日的數值
resolution = datetime.timedelta(1) -- 時間間隔單位為1天

包含的函式:
date(year, month, day) -- 建構函式,接受年、月、日三個引數,返回一個date object
ctime() -- 返回字串格式的時間表示格式。不接受引數
fromordinal() -- 接受一個整型的天數數值,返回一個天數所等價的年數、月數、日數的date物件。
fromtimestamp() -- 接收一個浮點型的時間戳,返回一個從1970年起+時間戳的值對應的年、月、日的date物件。
isocalendar() -- 返回一個ISO標準的日曆形式的3元元組,分別代表ISO year, week number, and weekday,不接收引數
isoformat() -- 返回一個ISO格式的日期字串。格式為YYYY-MM-DD,不接收引數
isoweekday() -- 返回一個ISO格式的周表示。Monday == 1 ... Sunday == 7,不接收引數
replace() -- 返回一個替換指定日期欄位的新date物件。引數3個可選引數,分別為year,month,day。注意替換是產生新物件,不影響原date物件。
strftime() -- 返回一個格式化的字串形式日期。接收一個format引數,如:'%Y-%d-%m'
timetuple() -- 返回一個time的時間格式物件。等價於time.localtime()
today() -- 返回當前date或datetime物件。等價於fromtimestamp(time.time())
toordinal() -- 返回公元公曆開始到現在的天數。公元1年1月1日為1
weekday() -- 返回日期表示的週期。Monday == 0 ... Sunday == 6
  1. >>> dir(datetime.time)  
  2. ['__class__''__delattr__''__doc__''__eq__''__format__''__ge__', '__get  
  3. attribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '_  
  4. _new__', '__nonzero__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__'  
  5. '__sizeof__''__str__''__subclasshook__''dst''hour''isoformat''max'
  6. 'microsecond''min''minute''replace''resolution''second''strftime',  
  7.  'tzinfo''tzname''utcoffset']  
包含的資料:
hour -- 小時表示數值
microsecond -- 微秒錶示數值
minute -- 分鐘表示數值
second -- 秒錶示數值
tzinfo -- 時區表示數值
max = datetime.time(23, 59, 59, 999999) -- 最大的時間表示數值
min = datetime.time(0, 0)  -- 最小的時間表示數值
resolution = datetime.timedelta(0, 0, 1) -- 時間間隔單位為分鐘

包含的函式:
time([hour[, minute[, second[, microsecond[, tzinfo]]]]]) -- 建構函式,返回一個time物件。所有引數均為可選
dst() -- 返回時區資訊的描述。如果例項是沒有tzinfo引數則返回空
isoformat() -- 返回ISO 8601格式字串, HH:MM:SS[.mmmmmm][+HH:MM].
replace() -- 返回一個替換指定時間欄位的新time物件。4個可選引數,分別為hour,minute,second,microsecond。注意替換是產生新物件,不影響原time物件。
strftime() -- 接收一個format引數,返回一個對應格式的字串。如:'%H:%M:%S'
tzname() -- 返回時區的名稱。如果例項是沒有tzinfo引數則返回空
utcoffset() -- 返回self.tzinfo.utcoffset(self)

  1. >>> dir(datetime.datetime)  
  2. ['__add__''__class__''__delattr__''__doc__''__eq__''__format__', '__ge  
  3. __', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '
  4. __ne__', '__new__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rs  
  5. ub__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', 'a  
  6. stimezone', 'combine', 'ctime', 'date', 'day', 'dst', 'fromordinal', 'fromtimest  
  7. amp', 'hour', 'isocalendar', 'isoformat', 'isoweekday', 'max', 'microsecond', 'm  
  8. in', 'minute', 'month', 'now', 'replace', 'resolution', 'second', 'strftime', 's  
  9. trptime', 'time', 'timetuple', 'timetz', 'today', 'toordinal', 'tzinfo', 'tzname  
  10. ', 'utcfromtimestamp', 'utcnow', 'utcoffset', 'utctimetuple', 'weekday', 'year']  
繼承自date的資料:
day
month
year

繼承自date的函式:
fromordinal(...)
isocalendar(...)
isoweekday(...)
strftime(...)
today(...)
toordinal(...)
weekday(...)

包含的資料:
hour
microsecond
minute
second
tzinfo
max = datetime.datetime(9999, 12, 31, 23, 59, 59, 999999)
min = datetime.datetime(1, 1, 1, 0, 0)
resolution = datetime.timedelta(0, 0, 1)

包含的函式:
datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])  -- 建構函式,返回一個datetime物件。year, month, day為必選引數
astimezone(...) -- 根據給定的timezone物件,返回轉換為本地時區的timezone物件。
combine(...) -- 根據給定date, time物件合併後,返回一個對應值的datetime物件。
ctime(...) -- 返回ctime格式的字串。
date(...) -- 返回具有相同year, month, day的date物件
dst(...) -- 返回self.tzinfo.dst(self).
fromtimestamp(...) -- 根據時間戳數值,返回一個datetime物件。
isoformat(...) -- 返回ISO 8601格式的字串,如:YYYY-MM-DDTHH:MM:SS[.mmmmmm][+HH:MM]
now(...) -- 根據給定的時區,返回當地的當前時間。
replace(...) -- 返回一個替換了指定日期時間欄位的新datetime物件
strptime(...) -- 根據string, format2個引數,返回一個對應的datetime物件。
time(...) -- 返回一個帶有相同time,但沒有tzinfo的time物件。
timetuple(...) -- 返回一個時間元素, 等價於time.localtime().
timetz(...) -- 返回一個帶有相同time和tzinfo的time物件。 
tzname(...) -- 返回self.tzinfo.tzname(self).
utcfromtimestamp(...) -- 返回UTC時間戳的datetime物件,時間戳值為time.time()
utcnow(...) -- 返回UTC當前時間的datetime物件.
utcoffset(...) -- Return self.tzinfo.utcoffset(self).
utctimetuple(...) -- 返回UTC時間元組物件, 等價於time.localtime().

說明:
datetime.time物件呼叫了time模組的基礎方法。並封裝之。
datetime.date物件同樣呼叫了time模組的基礎方法,並封裝之。
datetime.datetime物件繼承了datetime.date類,並呼叫了time模組的方法。

  1. >>> dir(timedelta)  
  2. ['__abs__''__add__''__class__''__delattr__''__div__''__doc__', '__eq__  
  3. ', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash  
  4. __', '__init__', '__le__', '__lt__', '__mul__', '__ne__', '__neg__', '__new__',  
  5. '__nonzero__''__pos__''__radd__''__rdiv__''__reduce__''__reduce_ex__',  
  6.  '__repr__''__rfloordiv__''__rmul__''__rsub__''__setattr__', '__sizeof__  
  7. ', '__str__', '__sub__', '__subclasshook__', 'days', 'max', 'microseconds', 'min  
  8. ', 'resolution', 'seconds', 'total_seconds']  
包含的資料:
days -- 天數
microseconds -- 微秒數(>= 0 and less than 1 second).
seconds -- 秒數 (>= 0 and less than 1 day).
max = datetime.timedelta(999999999, 86399, 999999)
min = datetime.timedelta(-999999999)
resolution = datetime.timedelta(0, 0, 1)

包含的函式:
timedelta() -- 建構函式,接收3個引數,天、秒、微秒
total_seconds() -- 時間間隔的總秒數