0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python中關(guān)于時(shí)間輸出和轉(zhuǎn)化的3個(gè)模塊

科技綠洲 ? 來源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-11-01 11:29 ? 次閱讀

1. 時(shí)間戳

1.1時(shí)間戳簡介

在正式講解時(shí)間的相關(guān)函數(shù)之前,我們必須先一個(gè)概念: 時(shí)間戳 。本文中特指unix時(shí)間戳。

時(shí)間戳Timestamp是指在一連串的數(shù)據(jù)中加入辨識(shí)文字,如時(shí)間或者日期等,用以保障本地?cái)?shù)據(jù)更新順序和遠(yuǎn)程的一致。

unix時(shí)間戳是從1970年1月1日(UTC/GMT的午夜)開始所經(jīng)過的秒數(shù),不考慮閏秒。1970-01-01就是經(jīng)常我們?cè)贛ySQL中時(shí)間為空的時(shí)候,轉(zhuǎn)化空的時(shí)間戳之后得到的時(shí)間。一個(gè)小時(shí)表示為UNIX時(shí)間戳格式為:3600秒;一天表示為UNIX時(shí)間戳為86400秒,閏秒不計(jì)算。具體的對(duì)照表如下:

圖片

1.2時(shí)間戳轉(zhuǎn)化網(wǎng)站

下面介紹幾個(gè)時(shí)間戳和具體時(shí)間之間相互轉(zhuǎn)化的網(wǎng)站:

1、站長工具:https://tool.chinaz.com/tools/unixtime.aspx

2、在線工具:https://tool.lu/timestamp/

3、Json在線解析:https://www.sojson.com/unixtime.html

4、Unix時(shí)間戳在線轉(zhuǎn)換(菜鳥工具):https://c.runoob.com/front-end/852

5、北京時(shí)間(時(shí)間與時(shí)間戳互換工具):http://www.beijing-time.org/shijianchuo/

介紹完時(shí)間戳的基本知識(shí),下面重點(diǎn)講解3個(gè)與時(shí)間和日期相關(guān)的Python庫:

  • calendar
  • time
  • datetime

2.calendar

calendar的中文意思是"日歷",所以它其實(shí)適合進(jìn)行日期,尤其是以日歷的形式展示。

2.1模塊內(nèi)容

圖片

下面舉例說明:

2.2calendar

我們顯示即將過去2020年的日歷,使用默認(rèn)的參數(shù)

import calendar
year = calendar.calendar(2020)
print(year)

圖片

改變參數(shù)再來顯示一次:

year = calendar.calendar(2020,w=3,l=1,c=8)
print(year)

圖片

我們發(fā)現(xiàn)整個(gè)日歷變寬了,而且星期的英文也是3個(gè)字母來顯示的,解釋一下3個(gè)參數(shù)的含義:

  • c:每月間隔距離
  • w:每日寬度間隔
  • l:每星期行數(shù)

其中每行長度為:21*w+18+2*c,3個(gè)月一行

最后,看看即將到來的2021年日歷:

圖片

2.3isleap(year)

該函數(shù)的作用是 判斷某個(gè)年份到底是不是閏年 。如果是則返回True,否則返回的是False。

普通年份能夠被4整除,但是不能被100整除,稱之為普通閏年

年份是整百數(shù)的,必須能夠被400整除,稱之為世紀(jì)閏年

圖片

2.4leapdays(y1,y2)

判斷兩個(gè)年份之間有多少個(gè)閏年 ,包含y1,但是不包含y2,類似Python切片中的包含頭部不包含尾部

圖片

2.5month(year,month,w=2,l=1)

該函數(shù)返回的是year年的month月的日歷,只有兩行標(biāo)題,一周一行。每日間隔寬度為w個(gè)字符,每行的長度為7*w + 6,其中l(wèi)是每星期的行數(shù)

首先看看默認(rèn)效果;

圖片

接下來我們改變w和l兩個(gè)參數(shù):

1、改變w,我們發(fā)現(xiàn)星期的表示變成了3個(gè)字母;同時(shí)每天之間的間隔變寬了(左右間隔)

圖片

2、改變參數(shù)l,我們發(fā)現(xiàn)每個(gè)星期之前的間隔(上下)變寬了

圖片

2.6monthcalendar(year,month)

通過列表的形式返回year年month月的日歷,列表中還是列表形式。每個(gè)子列表是一個(gè)星期。 如果沒有本月的日期則用0表示 。每個(gè)子列表都是從星期1開始的,特點(diǎn)概括如下:

  • 每個(gè)子列表代表的是一個(gè)星期
  • 從星期一到星期日,沒有出現(xiàn)在本月的日期用0代替

我們還是以2020年12月份為例:

圖片

和上面的日歷進(jìn)行對(duì)比,我們發(fā)現(xiàn):出現(xiàn)0的位置的確是沒有出現(xiàn)在12月份中

我們?cè)倏纯?020年3月份的日歷:

圖片

2.7monthrange(year,month)

該函數(shù)返回的結(jié)果是一個(gè)元組,元組中有兩個(gè)數(shù)值(a,b)

  • 數(shù)值a代表的是該月從星期幾開始;規(guī)定6代表星期天,取值為0-6
  • 數(shù)值b代表該月總共有多少天

通過一個(gè)例子來講解,還是以2020年12月份為例:

圖片

結(jié)果中的1表示12月份從星期2開始(0-6,6代表星期日),該月總共31天

2.8weekday(y,m,d)

weekday方法是輸入年月日,我們便可知道這天是星期幾;返回值是0-6,0代表星期1,6代表星期天

通過一個(gè)例子來講解,以12月12號(hào)為例:

圖片

雙12是星期六,返回的結(jié)果是5,5代表的就是星期六,剛好吻合。

3.time

time模塊是涉及到時(shí)間功能中最常用的一個(gè)模塊 ,在Python的相關(guān)時(shí)間需求中經(jīng)常會(huì)用到,下面具體講解該模塊的使用方法。

3.1模塊內(nèi)容

先看模塊的整體使用

圖片

3.2time

time.time()是獲取當(dāng)前的時(shí)間,更加嚴(yán)格地說,是獲取 當(dāng)前時(shí)間的時(shí)間戳 。

再次理解時(shí)間戳:它是以1970年1月1日0時(shí)0份0秒為計(jì)時(shí)起點(diǎn),計(jì)算到當(dāng)前的時(shí)間長度(不考慮閏秒)

圖片

3.3localtime

time.localtime打印當(dāng)前的時(shí)間 ,得到的結(jié)果是 時(shí)間元組 ,具體含義:

筆記:結(jié)果是時(shí)間元組

圖片

time.localtime的參數(shù)默認(rèn)是time.time()的時(shí)間戳,可以自己輸入某個(gè)時(shí)間戳來獲取其對(duì)應(yīng)的時(shí)間

  • 默認(rèn)當(dāng)前時(shí)間戳
  • 指定某個(gè)時(shí)間戳

圖片

3.4gmtime

localtime()得到的是 本地時(shí)間 ,如果需要國際化,使用gmtime(),最好是使用格林威治時(shí)間。

格林威治標(biāo)準(zhǔn)時(shí)間:位于英國倫敦郊區(qū)的皇家格林威治天文臺(tái)的標(biāo)準(zhǔn)時(shí)間,本初子午線經(jīng)過那里。

圖片

3.5asctime

time.asctime的參數(shù)為空時(shí),默認(rèn)是 以time.localtime的值為參數(shù) ,得到當(dāng)前的日期、時(shí)間、星期;另外,我們也可以自己設(shè)置參數(shù),參數(shù)是時(shí)間元組

  • 使用當(dāng)前時(shí)間的默認(rèn)時(shí)間元組localtime
  • 自己指定一個(gè)時(shí)間元組

圖片

獲取當(dāng)前時(shí)間的具體時(shí)間和日期:

圖片

3.6ctime

ctime的參數(shù)默認(rèn)是時(shí)間戳;如果沒有,也可以指定一個(gè)時(shí)間戳

圖片

3.7mktime

mktime()也是以時(shí)間元組為參數(shù)的,它返回的是時(shí)間戳, 相當(dāng)于是localtime的逆向過程

圖片

3.8strftime

strftime()是按照我們指定的格式 將時(shí)間元組轉(zhuǎn)化為字符串 ;如果不指定時(shí)間元組,默認(rèn)是當(dāng)前時(shí)間localtime()。常用到的時(shí)間格式見下表:

圖片

我們舉例說明:

  • 字符串中的分隔符我們可以任意指定
  • 可以同時(shí)顯示年月日時(shí)分秒等

圖片

3.9strptime

strptime()是將字符串轉(zhuǎn)化為時(shí)間元組,我們需要特別注意的是,它有兩個(gè)參數(shù):

  • 待轉(zhuǎn)化的字符串
  • 時(shí)間字符串對(duì)應(yīng)的格式,格式就是上面
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2613

    瀏覽量

    47016
  • 網(wǎng)站
    +關(guān)注

    關(guān)注

    1

    文章

    256

    瀏覽量

    23063
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4237

    瀏覽量

    61969
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84081
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Python面試必看的10個(gè)問題

    (5.,2.)另外,在Python3上面的代碼的輸出有何不同(假設(shè)代碼的print語句都轉(zhuǎn)化成了Py
    發(fā)表于 02-28 17:00

    python模塊安裝方法

    Python模塊是一個(gè)Python文件,以.py結(jié)尾,包括了Python對(duì)象定義和Python
    發(fā)表于 04-04 14:57

    Python常用時(shí)間處理操作匯總

    ,是一個(gè)更親民、方便的模塊。實(shí)例:import datetime#引入datetime模塊print datetime.datetime.now()#獲取當(dāng)前時(shí)間
    發(fā)表于 04-19 14:51

    Python時(shí)間操作處理資料總結(jié)

    python處理時(shí)間模塊有三個(gè),datetime, time,calendar,融匯貫通三個(gè)
    的頭像 發(fā)表于 03-30 10:28 ?2532次閱讀

    Python2與python3的八個(gè)主要區(qū)別

    python這門語言中有兩個(gè)重要的版本,一個(gè)python2,一個(gè)python3。
    的頭像 發(fā)表于 01-19 17:27 ?1.3w次閱讀

    個(gè)有趣的關(guān)于Python 3.9版本新特性

    個(gè)有趣的關(guān)于Python 3.9版本新特性
    的頭像 發(fā)表于 10-08 14:47 ?2981次閱讀
    四<b class='flag-5'>個(gè)</b>有趣的<b class='flag-5'>關(guān)于</b><b class='flag-5'>Python</b> 3.9版本新特性

    Python時(shí)間處理模塊處理日期與時(shí)間的全面總結(jié)

    Python時(shí)間處理模塊在日常的使用中用的較多,但是使用的時(shí)候基本上都是要查資料,還是有些麻煩的,梳理下,便于以后方便的使用。 時(shí)間相關(guān)概念 秒 ?在1967年的第13屆國際度量衡會(huì)
    的頭像 發(fā)表于 10-12 09:24 ?2000次閱讀
    <b class='flag-5'>Python</b>的<b class='flag-5'>時(shí)間</b>處理<b class='flag-5'>模塊</b><b class='flag-5'>中</b>處理日期與<b class='flag-5'>時(shí)間</b>的全面總結(jié)

    Python-模塊與包

    模塊Python 程序架構(gòu)的一個(gè)核心概念
    的頭像 發(fā)表于 02-16 14:55 ?693次閱讀
    <b class='flag-5'>Python</b>-<b class='flag-5'>模塊</b>與包

    介紹Python的日期時(shí)間基礎(chǔ)知識(shí)

    Python,處理日期時(shí)間是一個(gè)很常見的需求。Python提供了強(qiáng)大的日期時(shí)間
    的頭像 發(fā)表于 04-21 16:50 ?1318次閱讀

    Pythontelnetlib模塊的基本使用

    telnetlib 是 Python 標(biāo)準(zhǔn)庫的一個(gè)模塊,它提供了 Telnet 協(xié)議的客戶端功能。使用 telnetlib 模塊,我們可以
    的頭像 發(fā)表于 05-04 14:27 ?7412次閱讀

    Python的Time和DateTime說明

    Python在處理與時(shí)間相關(guān)的操作時(shí)有兩個(gè)重要模塊:time和datetime。在本文中,我們介紹這兩個(gè)
    的頭像 發(fā)表于 06-05 16:51 ?829次閱讀

    Python如何將你的照片轉(zhuǎn)化為“速寫”

    Photo-Sketching 一個(gè)能將照片的輪廓識(shí)別出來并將其轉(zhuǎn)化為“速寫”型圖像的開源模塊。 這個(gè)模塊的使用也相對(duì)簡單,下面給大家?guī)先矫娴慕坛蹋?1.虛擬環(huán)境及依賴安裝 這個(gè)項(xiàng)
    的頭像 發(fā)表于 10-30 11:43 ?532次閱讀
    <b class='flag-5'>Python</b>如何將你的照片<b class='flag-5'>轉(zhuǎn)化</b>為“速寫”

    python輸出list的每一個(gè)元素

    使用for循環(huán)來遍歷列表,并輸出其中的每一個(gè)元素。接下來,我將詳盡、詳實(shí)、細(xì)致地介紹一下Python輸出列表的每一個(gè)元素的方法,希望能對(duì)你有
    的頭像 發(fā)表于 11-21 16:16 ?1117次閱讀

    python如何導(dǎo)入模塊

    Python是一種強(qiáng)大的編程語言,它支持模塊化編程,使得開發(fā)者可以將代碼分解為可重用且獨(dú)立的模塊。模塊是一個(gè)包含函數(shù)、類和變量等定義的文件,
    的頭像 發(fā)表于 11-22 14:46 ?801次閱讀

    Python2與Python3的差異

    Python2,print語句是一個(gè)關(guān)鍵字,而在Python3,print函數(shù)被引入,必須使用括號(hào)。此外,
    的頭像 發(fā)表于 11-23 16:48 ?711次閱讀