datetime模塊源碼解讀

datetime模塊是基本日期和時間類型,提供了以簡單和復雜的方式操作日期和時間的類.可以進行輸出格式化操作.<!-- more -->

我們提供的服務有:做網(wǎng)站、網(wǎng)站設計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、東至ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的東至網(wǎng)站制作公司

日期和時間對象有兩種:naive 和 aware .
datetime并且time 對象具有可選的時區(qū)信息屬性,tzinfo可以將其設置為抽象tzinfo類的子類的實例.

常量

  • datetime.MINYEAR: 一個date或一個datetime對象中允許的最小年份數(shù)。 MINYEAR是1.
  • datetime.MAXYEAR: 一個date或一個datetime對象中允許的最大年份數(shù)。 MAXYEAR是9999.

可用類的類型

  • class datetime.date
    • 理想化的天真日期,屬性: year,month,和 day。
  • class datetime.time
    • 理想化的時間.屬性: hour,minute,second,microsecond,和tzinfo.
  • class datetime.datetime
    • 日期和時間的組合。屬性:year,month, day,hour,minute,second,microsecond,和tzinfo。
  • class datetime.timedelta
    • 表達兩者之間的差異的持續(xù)時間date,time或datetime實例微秒的分辨率
  • class datetime.tzinfo
    • 時區(qū)信息對象的抽象基類。這些由 datetime和和time類一起用于提供可定制的時間調整概念.
  • class datetime.timezone
    • 將tzinfo抽象基類實現(xiàn)為與UTC的固定偏移量的類.
date類的類方法和類屬性

一個date對象代表一個理想化的日歷日期(年,月,日),當前的公歷無限期延長兩個方向。1年1月1日稱為第1天,1年1月2日稱為第2天

  • 類方法:

    • datetime.date(year, month, day) 參數(shù)是必需的,可以是整數(shù).
    • date.today() 返回今天的日期.
    • date.fromtimestamp() 返回與POSIX時間戳對應的本地日期.
    • date.fromordinal() 返回對應于公歷格里高利序數(shù)的日期.
  • 類屬性:

    • date.min屬性: 表示最早的月日(1.1)
    • date.max屬性: 最晚的月日(12.31)
    • date.resolution: 非相等日期對象之間可能存在的最小差異, timedelta(days=1)。
  • 實例屬性(只讀):
    • date.year 打印年份.
    • date.month: 月份(1-12月)
    • date.day: 給定年份的給定月份的1和之間的天數(shù).

注意: 日期可以用作字典鍵。在布爾上下文中,所有date 對象都被認為是真的。

實例方法:
  • date.replace方法

    date.replace(year = self.year,month = self.month,day = self.day): 返回具有相同值的日期.

  • date.timetuple():返回元組類型的本地時間.
  • date.toordinal(): 返回日期的公歷序數(shù).
  • date.weekday() 以星期為單位返回星期幾.其中星期一為0,星期日為6.
  • date.isoweekday():以星期為單位返回星期幾,星期一為1,星期日為7.
  • date.isocalendar():返回3元組(月份,周,工作日)
  • date.isoformat(): 返回表示ISO 8601格式的日期字符串'YYYY-MM-DD'.
  • date.str(): 對于日期d,str(d)相當于d.isoformat().
  • date.ctime() : 返回表示日期的字符串.
  • date.strftime(format): 返回表示日期的字符串,由顯式格式字符串控制。引用小時,分鐘或秒的格式代碼將顯示0值.
  • date.format(format):和date.strftie()相同.

  • 計算事件天數(shù)

參考libdate.py文件.

timedelta對象

timedelta對象表示的持續(xù)時間,兩個日期或時間之間的差.

class datetime.timedelta(days = 0,seconds = 0,microseconds = 0,milliseconds = 0,minutes = 0,hours = 0,weeks = 0 

參數(shù)可以是整數(shù),浮點數(shù),正數(shù)或負數(shù).

  • 參數(shù)轉換:
    毫秒轉換為1000微秒。
    一分鐘轉換為60秒。
    一小時轉換為3600秒。
    一周轉換為7天
類屬性:
  • timedelta.min : 負數(shù)的timedelta對象.
  • timedelta.max : 最大的timedelta對象.
  • timedelta.resolution : 非平等timedelta物體之間可能存在的最小差異.
實例屬性

實例屬性(只讀)

  • days 介于-999999999和999999999之間.
  • seconds: 介于0和86399之間.
  • microseconds: 介于0和999999之間.

timedelta對象還支持使用date和datetime 對象進行某些添加和減少.
timedelta對象是可散列的(可用作字典鍵).

  • 實例方法:
    • timedelta.total_seconds(): 返回持續(xù)時間中包含的總秒數(shù)
datetime對象

包含來自所有信息的單個對象date的對象和time對象。

  • 構造函數(shù):
    class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

    年,月,日參數(shù)是必需的。 tzinfo可以是None,或者是tzinfo子類的實例。其余參數(shù)可以是整數(shù).

datetime對象的類方法
  • datetime.today(): 返回當前的本地日期時間.
  • datetime.now(tz = None): 返回當前的本地日期和時間.
  • datetime.utcnow(): 返回當前的UTC日期和時間.
  • datetime.fromtimestamp(timestamp,tz = None):返回與POSIX時間戳對應的本地日期和時間.
  • datetime.utcfromtimestamp(timestamp): 返回與datetimePOSIX時間戳對應 的UTC.
  • datetime.fromordinal(ordinal): 返回datetime相應的公歷格里高利序數(shù),其中第1年1月1日有序數(shù)1.
  • datetime.combine(date, time, tzinfo=self.tzinfo): 返回一個新datetime對象,其日期組件等于給定date對象,其時間組件等于給定time對象.
  • datetime.strptime(date_string, format): 返回datetime對應的date_string,根據(jù)格式解析.
datetime對象的類屬性
  • datetime.min: 最早的datetime,日期和時間.
  • datetime.max: 最晚的datetime,日期和時間.
  • datetime.resolution: 非平等datetime物體之間可能存在的最小差異.
實例屬性

實例屬性(只讀)

  • datetime.year: 年
  • datetime.month: 介于1到12之間.
  • datetime.day: 在給定年份的給定月份的1和之間的天數(shù).
  • datetime.hour: 范圍(24小時)
  • datetime.minute:60分鐘.
  • datetime.second: 60秒.
  • datetime.microsecond: 1000000毫秒.
  • datetime.tzinfo: 該對象作為tzinfo參數(shù)傳遞給datetime構造函數(shù).
  • datetime.fold: 用于消除重復間隔期間的偏移時間.

datetime對象可以用作字典鍵.

實例方法
  • datetime.date(): 返回年月日的對象.
  • datetime.time(): 以相同的小時,分鐘,秒,微秒和折疊返回對象。折疊值被復制到返回的time對象.
  • datetime.timetz(): 返回time具有相同小時,分鐘,秒,微秒,折疊和tzinfo屬性的對象.
  • datetime.replace()

    datetime.replace(year=self.year, month=self.month, day=self.day, hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond, tzinfo=self.tzinfo, * fold=0)

    返回具有相同屬性的日期時間.

  • datetime.astimezone(tz=None): 返回datetime具有新tzinfo屬性tz的對象,調整日期和時間數(shù)據(jù).tz必須是tzinfo子類的實例.
  • datetime.utcoffset(): 如果tzinfo是None,則返回None,否則返回 self.tzinfo.utcoffset(self),并在后者未返回時引發(fā)異常None,或者timedelta表示大小小于一天的整數(shù)分鐘的對象.
  • datetime.dst(): 如果tzinfo是None,則返回None,否則返回 self.tzinfo.dst(self),并在后者未返回時引發(fā)異常 None,或者timedelta表示大小小于一天的整數(shù)分鐘的對象。
  • datetime.tzname(): 如果tzinfo是None,則返回None,否則返回 self.tzinfo.tzname(self),如果后者不返回None或者是字符串對象,則引發(fā)異常.
  • datetime.timetuple():返回time.struct_time
  • datetime.utctimetuple():
  • datetime.toordinal(): 返回日期的格里高利序數(shù).
  • datetime.timestamp(): 返回與datetime 實例對應的POSIX時間戳.該timestamp()方法使用該fold屬性消除重復間隔期間的時間歧義.
  • datetime.weekday(): 以星期為單位返回星期幾,其中星期一為0.
  • datetime.isoweekday(): 以星期為單位返回星期幾,星期一為1.
  • datetime.isocalendar(): 返回3元組(年,星期編號,工作日)
  • datetime.isoformat(sep ='T',timespec ='auto'): 返回表示ISO 8601格式的日期和時間的字符串.
  • datetime.str(): 相當于d.isoformat(' ')
  • datetime.ctime(): 返回表示日期和時間的字符串.
  • datetime.strftime(format): 返回表示日期和時間的字符串,由顯式格式字符串控制.
  • datetime.format(format): 返回表示日期和時間的字符串,由顯式格式字符串控制.
time對象

time對象表示一天中的時間,可以通過tzinfo對象調整.

class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
類屬性
  • time.min: 最早的時間.
  • time.max: 最新的時間.
  • time.resolution: 非相等time對象 之間可能存在最小差異.
實例屬性

實例屬性(只讀)

  • time.hour: 24小時.
  • time.minute: 60分鐘
  • time.second: 60s
  • time.microsecond: 1000000
  • time.tzinfo: 該對象作為tzinfo參數(shù)傳遞給time構造函數(shù)
  • time.fold: 消除重復間隔期間的墻壁時間.
實例方法
  • time.replace方法

    time.replace(hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond, tzinfo=self.tzinfo, * fold=0)
    返回time具有相同值的a

  • time.isoformat(timespec ='auto'): 返回表示ISO 8601格式的時間的字符串.
  • time.strftime(format): 返回表示時間的字符串,由顯式格式字符串控制.

timezone 對象

每一個實例,其中表示通過從UTC的固定偏移定義的時區(qū).

class datetime.timezone(offset, name=None)
所述偏移參數(shù)必須被指定為timedelta 代表的本地時間和UTC之間的差對象

timezone.utcoffset(dt): 返回timezone構造實例時指定的固定值.

timezone.tzname(dt): 返回timezone構造實例時指定的固定值.

timezone.dst(dt): 返回None.

類屬性:
timezone.utc
UTC時區(qū),timezone(timedelta(0))。

format time結構化表示

%a : 簡化星期名稱
%A : 本地完整星期名稱
%b : 本地簡化月份名稱
%B : 本地完整月份名稱
%c : 本地相應的日期和時間表示.
%d : 一個月中的第幾天(01-31)
%H : 一天中的第幾個小時(24小時制,00-23)
%I : 第幾個小時(12小時制,01-12)
%j : 一年中的第幾天(001-366)
%m : 月份(01-12)
%M : 分鐘數(shù)(00-59)
%p : 本地am或者pm的對應符.
%S : 秒(01-61)
%U : 一年中的星期數(shù).(00-53星期天是一個星期的開始),第一個星期天之前的所有天數(shù)都放在第0周.
%w : 一個星期中的第幾天(0-6,0是星期天)
%W : 和%U基本相同,不同的是%W以星期一為一個星期的開始.
%x : 本地相應日期.
%X : 本地相應時間.
%y : 去掉世紀的月份(00-99)
%Y : 完整月份.
%Z : 時區(qū)的名字(不存在就為空字符)
%% : '%'字符.

文章題目:datetime模塊源碼解讀
本文網(wǎng)址:http://bm7419.com/article2/jcijoc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿網(wǎng)站建設、關鍵詞優(yōu)化網(wǎng)站收錄、網(wǎng)站建設、網(wǎng)站設計公司、自適應網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿網(wǎng)站制作