最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1 前言

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

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

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對(duì)象

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)

# 將對(duì)象轉(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"))

符號(hào)描述
%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本地簡(jiǎn)化星期名稱
%A本地完整星期名稱
%b本地簡(jiǎn)化月份名稱
%B本地完整月份名稱
%c本地相應(yīng)的日期表示和時(shí)間表示
%j年內(nèi)的一天(001-366)
%p本地A.M.或P.M.的等價(jià)符
%U一年中的星期數(shù)(00-53)星期天為星期的開(kāi)始
%w星期(0-6),星期天為星期的開(kāi)始
%W一年中的星期數(shù)(0-53)星期一位星期的開(kāi)始
%x本地相應(yīng)的日期表示
%X本地相應(yīng)的事假表示
%Z當(dāng)前時(shí)區(qū)的名稱
%%%號(hào)本身

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

元組表示法:以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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

宕昌县| 白朗县| 自治县| 綦江县| 南昌县| 五家渠市| 扬中市| 榆中县| 安徽省| 灵宝市| 临桂县| 垫江县| 贵阳市| 贡嘎县| 宁强县| 高台县| 澄江县| 道孚县| 庐江县| 正镶白旗| 高碑店市| 舟曲县| 尤溪县| 山丹县| 濮阳县| 永年县| 西畴县| 翁源县| 平阳县| 丹巴县| 东平县| 吴桥县| 桂平市| 沭阳县| 六安市| 全州县| 重庆市| 江华| 芦溪县| 通渭县| 高要市|