欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python日期與時(shí)間模塊(datetime+time+Calendar+dateuil?)相關(guān)使用講解

 更新時(shí)間:2022年09月09日 10:00:54   作者:有勇氣的牛排  
這篇文章主要介紹了Python日期與時(shí)間模塊(datetime+time+Calendar+dateuil?)相關(guān)使用講解,文章圍繞主題展開詳細(xì)的內(nèi)容戒殺,具有一定的參考價(jià)值,需要的朋友可以參考一下

1 前言

在開發(fā)中經(jīng)常會(huì)遇到查詢?nèi)掌?、時(shí)間、時(shí)間戳,或者日期比較等相關(guān)操作,為了方便以后使用,本文將對python操作時(shí)間的各種操作做出總結(jié)。

時(shí)間戳: 即以整型或浮點(diǎn)型表示的是一個(gè)以秒為單位的時(shí)間間隔。這個(gè)時(shí)間的基礎(chǔ)值是從1970年的1月1號零點(diǎn)開始算起。

2 datetime 模塊

此模塊常用類有:date、time、datetime、timedelta

導(dǎo)入:

from datetime import *

2.1 date類

獲取當(dāng)前日期:

from datetime import *

dt = date.today()
print(dt)		# 輸出:2022-09-07

print(dt.year)          # 2022
print(dt.month)
print(dt.day)

# 返回星期幾  星期一 = 0
print(dt.weekday())             # 輸出:2
# 返回星期幾  星期一 = 1
print(dt.isoweekday())          # 0001-01-01

# 返回 ctime() 樣式字符串
print(dt.ctime())               # Wed Sep  7 00:00:00 2022
# 修改 年、月、日
print(dt.replace(year=2023))    # 輸出:2023-09-07
# 打印最大/最小日期
print(dt.max)                   # 9999-12-31
print(dt.min)                   # 0001-01-01

使用date類的構(gòu)造函數(shù),初始化變量

d = date(2022, 9, 6)
print(d)			# 輸出:2022-09-06

字符串初始化為date

d = date.fromisoformat("2022-09-06")
print(d)        # 2022-09-06
print(type(d))  # <class 'datetime.date'>

時(shí)間戳 轉(zhuǎn) date對象

d = date.fromtimestamp(1662451516)
print(d)    	# 2022-09-06

date 轉(zhuǎn) 字符串

d = date.today()
str_date = d.isoformat()
print(str_date)          # 2022-09-06 字符串

2.2 time類

from datetime import time

t1 = time(10, 20, 32)
print(t1)   # 輸出:10:20:32

# 打印時(shí)分秒
print(t1.hour)
print(t1.minute)
print(t1.second)

# 將對象轉(zhuǎn)為字符串
res = time.isoformat(t1)
# print(t1.isoformat()) # 方式2
print(res)              # 輸出:10:20:32
print(type(res))        # 輸出:<class 'str'>

2.3 datetime類

from datetime import datetime

# datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
t = datetime(2022, 9, 7, 20, 32, 20)
print(t)

# 打印 年月日 時(shí)分秒
print(t.year)
print(t.month)
print(t.day)
print(t.hour)
print(t.minute)
print(t.second)

# 獲取當(dāng)前時(shí)間
today = datetime.now()
print(today)

# 字符串轉(zhuǎn)為datetime
d = datetime.fromisoformat("2022-09-10 12:25:36")
print(type(d))	# <class 'datetime.datetime'>

2.4 timedelta類

主要用于計(jì)算日期差異,或者日期相關(guān)操作

2.4.1 時(shí)間增加

from datetime import datetime, timedelta

now = datetime.now()
print(now)

# 加2天
# def __new__(cls, days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
new_time = now + timedelta(days=2)
print(new_time.strftime("%Y-%m-%d %H:%M:%S"))

# 加1周
new_time = now + timedelta(weeks=1)
print(new_time.strftime("%Y-%m-%d %H:%M:%S"))

2.4.2 計(jì)算時(shí)間差

from datetime import datetime, date

# 計(jì)算時(shí)間差
now = datetime.now()
# 將字符串轉(zhuǎn)為<class 'datetime.datetime'>
d = datetime.fromisoformat("2022-09-10 12:25:36")
res = d - now
print(res)
print(res.days)
print(res.seconds)

2.5 datetime格式化

from datetime import datetime, date

now = datetime.now()
print(now)
print(now.strftime("%Y-%m-%d %H:%M:%S"))
print(now.strftime("%y-%m-%d %H:%M:%S %A"))

符號描述
%y兩位數(shù)的年份表示(00-99)
%Y四位數(shù)的年份表示(0000-9999)
%m月份(01-12)
%d月內(nèi)的天(0-31)
%H24h值小時(shí)數(shù)(0-23)
%I12小時(shí)小時(shí)數(shù)
%M分鐘數(shù)(00-59)
%S秒(00-59)
%a本地簡化星期名稱
%A本地完整星期名稱
%b本地簡化月份名稱
%B本地完整月份名稱
%c本地相應(yīng)的日期表示和時(shí)間表示
%j年內(nèi)的一天(001-366)
%p本地A.M.或P.M.的等價(jià)符
%U一年中的星期數(shù)(00-53)星期天為星期的開始
%w星期(0-6),星期天為星期的開始
%W一年中的星期數(shù)(0-53)星期一位星期的開始
%x本地相應(yīng)的日期表示
%X本地相應(yīng)的事假表示
%Z當(dāng)前時(shí)區(qū)的名稱
%%%號本身

3 time 標(biāo)準(zhǔn)庫

元組表示法:以Python的數(shù)據(jù)結(jié)構(gòu)表示,共有9個(gè)。

屬性描述
tm_year
tm_mon月(1-12)
tm_mday日(1-31)
tm_hour時(shí)(0-23)
tm_min分(0-59)
tm_sec秒(0-59)
tm_wday0-6(0表示周日)
tm_yday1-366(一年中的第幾天)
tm_isdst默認(rèn)為-1(是否為夏令時(shí))

3.1 時(shí)間操作

import time

# 當(dāng)前timestamp
timestamp = time.time()
print(timestamp)

# 時(shí)間戳 轉(zhuǎn) 時(shí)間元組
# 方式1:time.struct_time(tm_year=2022, tm_mon=9, tm_mday=10, tm_hour=16, tm_min=11, tm_sec=30, tm_wday=3, tm_yday=251, tm_isdst=0)
time_tuple1 = time.localtime()
# 方式2
time_tuple2 = time.localtime(timestamp)
print(time_tuple1)
print(time_tuple2)

# 時(shí)間元組 轉(zhuǎn) 時(shí)間戳
timestamp2 = time.mktime(time_tuple1)
print(timestamp2)  # 1662624690.0

# 時(shí)間元組 格式化為 時(shí)間
strftime1 = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple1)
print(strftime1)
# 時(shí)間 格式化為 時(shí)間元組
time_tuple3 = time.strptime("2022-09-10 16:14:18", "%Y-%m-%d %H:%M:%S")
print(time_tuple3)

# 返回一個(gè)可讀的時(shí)間字符串
print(time.ctime())               # Thu Sep  10 16:17:40 2022
print(time.ctime(time.time()))    # Thu Sep  10 16:17:40 2022

print(time.asctime())
print(time.asctime(time.localtime()))

3.2 程序睡眠

程序睡眠:

# 程序暫停/睡眠3s
time.sleep(3)

4 Calendar 日歷模塊

打印日歷:

import calendar

cal = calendar.month(2022,9)
print(cal)  # str
"""
   September 2022
Mo Tu We Th Fr Sa Su
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
"""

閏年相關(guān):

import calendar

# 判斷是否為閏年
print(calendar.isleap(2000))  # True
print(calendar.isleap(2022))  # False

# 查看2個(gè)年份之間的閏年總和
print(calendar.leapdays(2008, 2060))  # 13

5 dateuil 日期模塊

安裝:

pip install dateutils
from datetime import datetime, date
from dateutil.relativedelta import relativedelta, MO, TU, WE, TH, FR, SA, SU

now = datetime.now()
today = date.today()
print(now)
print(today)

"""
    時(shí)間增加
    dt1=None, dt2=None,
    years=0, months=0, days=0, leapdays=0, weeks=0,
    hours=0, minutes=0, seconds=0, microseconds=0,
    year=None, month=None, day=None, weekday=None,
    yearday=None, nlyearday=None,
    hour=None, minute=None, second=None, microsecond=None
"""
# 下個(gè)月
next_month = now + relativedelta(months=1)
print(next_month)

# 一年后 前一個(gè)月
next_year_prev_month = now + relativedelta(years=1, months=-1)
print(next_year_prev_month)

# 下周五(前提是今天為周六、周天)
next_fr = now + relativedelta(weekday=FR)
print(next_fr)

# 計(jì)算兩個(gè)日期差
res = relativedelta(date(2060, 6, 20), today)
print(res)          # relativedelta(years=+37, months=+9, days=+12)
print(res.years)    # 37

到此這篇關(guān)于Python日期與時(shí)間模塊(datetime+time+Calendar+dateuil )相關(guān)使用講解的文章就介紹到這了,更多相關(guān)Python時(shí)間模塊 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python自動(dòng)化之定位方法大殺器xpath

    Python自動(dòng)化之定位方法大殺器xpath

    selenium的幾種定位方法中,大殺器之一就是xpath方法,學(xué)會(huì)它,你將無所不能.本文就帶大家詳細(xì)了解一下這個(gè)大殺器,文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-05-05
  • python中創(chuàng)建以及刪除虛擬環(huán)境的幾種方法總結(jié)

    python中創(chuàng)建以及刪除虛擬環(huán)境的幾種方法總結(jié)

    在Python?中創(chuàng)建虛擬環(huán)境非常容易,但是刪除虛擬環(huán)境可能會(huì)有一些挑戰(zhàn),這篇文章主要給大家介紹了關(guān)于python中創(chuàng)建以及刪除虛擬環(huán)境的幾種方法,需要的朋友可以參考下
    2024-03-03
  • Python爬蟲爬取愛奇藝電影片庫首頁的實(shí)例代碼

    Python爬蟲爬取愛奇藝電影片庫首頁的實(shí)例代碼

    這篇文章主要介紹了Python爬蟲爬取愛奇藝電影片庫首頁的實(shí)例代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • 老生常談Python startswith()函數(shù)與endswith函數(shù)

    老生常談Python startswith()函數(shù)與endswith函數(shù)

    下面小編就為大家?guī)硪黄仙U凱ython startswith()函數(shù)與endswith函數(shù)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • python+selenium實(shí)現(xiàn)登錄賬戶后自動(dòng)點(diǎn)擊的示例

    python+selenium實(shí)現(xiàn)登錄賬戶后自動(dòng)點(diǎn)擊的示例

    本篇文章主要介紹了python+selenium實(shí)現(xiàn)登錄賬戶后自動(dòng)點(diǎn)擊的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • python的rllib庫你了解嗎

    python的rllib庫你了解嗎

    這篇文章主要介紹了python urllib庫的使用,幫助大家更好的利用python學(xué)習(xí)爬蟲,感興趣的朋友可以了解下,希望能夠給你帶來幫助
    2021-11-11
  • pygame外星人入侵小游戲超詳細(xì)開發(fā)流程

    pygame外星人入侵小游戲超詳細(xì)開發(fā)流程

    這篇文章主要介紹了利用Python編寫的外星人入侵游戲的示例代碼,文中的代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定的幫助,感興趣的可以學(xué)習(xí)一下
    2022-03-03
  • python實(shí)現(xiàn)上傳下載文件功能

    python實(shí)現(xiàn)上傳下載文件功能

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)上傳下載文件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • python中f‘{}‘用法小結(jié)

    python中f‘{}‘用法小結(jié)

    這篇文章主要介紹了python中f‘{}‘用法,f’{}’用法等同于 format用法的簡單使用,更加方便,本文給大家詳細(xì)講解,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • python 利用turtle模塊畫出沒有角的方格

    python 利用turtle模塊畫出沒有角的方格

    今天小編就為大家分享一篇python 利用turtle模塊畫出沒有角的方格,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11

最新評論