日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

时间模块和时间工具

發(fā)布時(shí)間:2023/11/29 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 时间模块和时间工具 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、time模塊

三種格式
時(shí)間戳?xí)r間:浮點(diǎn)數(shù) 單位為秒
時(shí)間戳起始時(shí)間:
1970.1.1 0:0:0 英國倫敦時(shí)間
1970.1.1 8:0:0 我國(東8區(qū))
結(jié)構(gòu)化時(shí)間:元組(struct_time)
格式化時(shí)間:str數(shù)據(jù)類型的

?

1、常用方法

import timetime.sleep(secs) 推遲指定的時(shí)間運(yùn)行,單位是秒for i in range(3):time.sleep(1)print(i)

?

2、表示時(shí)間的三種方式

時(shí)間戳(timestamp)、元組(struct_time)、格式化(str_time)的時(shí)間字符串1. 時(shí)間戳(timestamp) :通常來說,時(shí)間戳表示的是從1970年1月1日00:00:00開始按秒計(jì)算的偏移量。 我們運(yùn)行“type(time.time())”,返回的是float類型。 print(time.time()) # 1536050072.5732844(1970年1月1日00:00:00到此刻運(yùn)行time.time()的時(shí)間) 2. 結(jié)構(gòu)化時(shí)間(struct_time) :struct_time元組共有9個(gè)元素共九個(gè)元素:(年,月,日,時(shí),分,秒,一周中第幾天,一年中第幾天,夏令時(shí)) struct_time = time.localtime() # 我國的時(shí)間 print(struct_time) # time.struct_time(tm_year=2018, tm_mon=9, tm_mday=4, tm_hour=16, tm_min=40, tm_sec=1, tm_wday=1, tm_yday=247, tm_isdst=0) struct_time = time.gmtime() # 倫敦的時(shí)間 print(struct_time) # time.struct_time(tm_year=2018, tm_mon=9, tm_mday=4, tm_hour=8, tm_min=40, tm_sec=1, tm_wday=1, tm_yday=247, tm_isdst=0)3. 格式化時(shí)間(Format_string): fmt1 =time.strftime('%H:%M:%S') # 時(shí)分秒(全大寫) fmt2 =time.strftime('%Y-%m-%d') # 年月日(年可大寫可小寫,月日小寫) fmt3 =time.strftime('%y-%m-%d') # 年月日 fmt4 =time.strftime('%c') # 本地相應(yīng)的日期表示和時(shí)間表示print(fmt1) # 16:49:03 print(fmt2) # 2018-09-04 print(fmt3) # 18-09-04 print(fmt4) # Tue Sep 4 16:49:03 2018

?

3、幾種時(shí)間格式間的轉(zhuǎn)換

1. 轉(zhuǎn)換

Timestamp ---> struct_time: time.localtime(轉(zhuǎn)成我國的時(shí)間)、time.gmtime(轉(zhuǎn)成倫敦時(shí)間)
struct_time ---> Timestamp: time.mktime()

Format_string ---> struct_time: time.strptime()
struct_time ---> Format_string: time.strftime()

?

2. 例子

1. 把格式化時(shí)間2018年8月8日轉(zhuǎn)成時(shí)間戳?xí)r間 str_time = '2018-8-8' struct_time = time.strptime(str_time,'%Y-%m-%d') print(struct_time) # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=220, tm_isdst=-1) timestamp = time.mktime(struct_time) print(timestamp) # 1533657600.02. 把時(shí)間戳?xí)r間轉(zhuǎn)成格式化時(shí)間 timestamp = 1500000000 struct_time = time.localtime(timestamp) str_time = time.strftime('%Y-%m-%d',struct_time) print(str_time) # 2017-07-143. 寫函數(shù),計(jì)算本月1號(hào)的時(shí)間戳?xí)r間 通過我拿到的這個(gè)時(shí)間,能迅速的知道我現(xiàn)在所在時(shí)間的年 月 def get_timestamp():str_time = time.strftime('%Y-%m-1')struct_time = time.strptime(str_time,'%Y-%m-%d')timestamp = time.mktime(struct_time)return timestamp ret = get_timestamp() print(ret)

?

%y 兩位數(shù)的年份表示(00-99%Y 四位數(shù)的年份表示(0000-9999%m 月份(01-12%d 月內(nèi)中的一天(0-31%H 24小時(shí)制小時(shí)數(shù)(0-23%I 12小時(shí)制小時(shí)數(shù)(01-12%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ù)(00-53)星期一為星期的開始%x 本地相應(yīng)的日期表示%X 本地相應(yīng)的時(shí)間表示%Z 當(dāng)前時(shí)區(qū)的名稱%% %號(hào)本身 3. python中時(shí)間日期格式化符號(hào)

?

二、datetime模塊

1、dateime.date

import datetime1. datetime.date類型(年月日) 注意:datetime.date類型就是time模塊的結(jié)構(gòu)化時(shí)間,只是它在內(nèi)部把結(jié)構(gòu)化時(shí)間的顯示格式化了再打印出來 datetime.date.today() datetime.date(2018, 12, 21)2.根據(jù)給定的時(shí)間戮,返回一個(gè)date對象 datetime.date.fromtimestamp(timestamp) # 返回一個(gè)date對象,與datetime.date.today()作用相同 datetime.date.fromtimestamp(1528345678) # 2018-06-073.由date日期格式轉(zhuǎn)化為字符串格式 datetime.date.strftime(format)datetime.date.today().strftime('%Y-%m-%d') # "2018-12-21" 注意:date類型沒有strptime

?

2、datetime.dateime

注意:datetime是繼承了date的類 1. datetime.datetime類型(年月日時(shí)分秒微妙時(shí)區(qū)) datetime.datetime.today() datetime.datetime.now()datetime.datetime(2018,12, 21, 8, 12, 8, 603000)返回當(dāng)前日期時(shí)間的日期部分 datetime.datetime.today().date() # 2018-12-21 返回當(dāng)前日期時(shí)間的時(shí)間部分 datetime.datetime.now().time() # 15:19:16.2304492.根據(jù)給定的時(shí)間戮,返回一個(gè)datetime對象 datetime.datetime.fromtimestamp() # 返回一個(gè)datetime對象,與datetime.datetime.today()作用相同 datetime.datetime.fromtimestamp(1528345678) # 2018-06-07 12:27:583. 由日期格式轉(zhuǎn)化為字符串格式 datetime.datetime.strftime(format) datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') # "2018-12-21 09:17:14"3.由字符串格式轉(zhuǎn)化為日期格式 datetime.datetime.strptime() datetime.datetime.strptime('2018-12-21 11:01:27', '%Y-%m-%d %H:%M:%S')4. 結(jié)構(gòu)化時(shí)間:元組 注意:這就是結(jié)構(gòu)化時(shí)間初始的樣子 datetime.datetime.now().timetuple() # time.struct_time(tm_year=2018, tm_mon=12, tm_mday=21, tm_hour=9, tm_min=18, tm_sec=1, tm_wday=4, tm_yday=355, tm_isdst=-1)

?

3、datetime.timedelta

datetime.timedelta用于計(jì)算兩個(gè)日期之間的差值datetime.timedelta(weeks=1) # 返回一個(gè)時(shí)間差,參數(shù)weeks,days,hours,minutes,[1 weeks=7 days],沒有years,months 例1: import datetime day7 = datetime.timedelta(days=7) # 7天的時(shí)間時(shí)間隔 一年用52周表示 weeks=52 today = datetime.datetime.now() # 7天之后的時(shí)間是什么 # today + 7 after_7 = today + day7 print(after_7, type(after_7))例2: a=datetime.datetime.now() # datetime.datetime(2018, 12, 21, 13, 15, 20, 871000) b=datetime.datetime.now() # datetime.datetime(2018, 12, 21, 13, 15, 29, 603000)print(b-a) # datetime.timedelta(0, 0, 8, 732000) print((b-a).seconds) # 8 print((b-a).total_seconds()) # 8.732 或者 time1 = datetime.datetime(2018, 12, 20) time2 = datetime.datetime(2017, 11, 12)"""計(jì)算天數(shù)差值""" print((time1-time2).days)"""計(jì)算兩個(gè)日期之間相隔的秒數(shù)""" print ((time1-time2).total_seconds())

?

4、datetime.time

time類有5個(gè)參數(shù),datetime.time(hour,minute,second,microsecond,tzoninfo),返回08:29:301.datetime.time.replace()2.datetime.time.strftime(format):按照format格式返回時(shí)間3.datetime.time.tzname():返回時(shí)區(qū)名字4.datetime.time.utcoffset():返回時(shí)區(qū)的時(shí)間偏移量

?

三、時(shí)間工具dateutil

直接看例子感受時(shí)間工具的絕對時(shí)間relativedelta吧

from dateutil import relativedelta import datetimenow = datetime.datetime.today() print(now) # 2018-12-21 15:47:31.005604# 下個(gè)月 next_month = now + relativedelta.relativedelta(months=1) print(next_month) # 2019-01-21 15:47:31.005604# 注意months和month的區(qū)別: # months=1 表示在現(xiàn)在的日期基礎(chǔ)上加一個(gè)月的時(shí)間 # months=-1表示在現(xiàn)在的日期基礎(chǔ)上減一個(gè)月 # month=1 表示把現(xiàn)在的日期的月份設(shè)置為1月 # years, months, days, weeks, hours, minutes, seconds等也是跟對應(yīng)的year,month,day,week...一樣 set_month = now + relativedelta.relativedelta(month=1) print(set_month) # 2018-01-21 15:47:31.005604# 注意與datetime.timedelta區(qū)別: # datetime.timedelta沒有months和years參數(shù) # 因此一個(gè)月用weeks=4表示,只能表示28天后,有偏差 next_month2 = now + datetime.timedelta(weeks=4) print(next_month2) # 2019-01-18 15:47:31.005604# 下個(gè)月加一周 next_month_week = now + relativedelta.relativedelta(months=1, weeks=1) print(next_month_week) # 2019-01-28 15:47:31.005604# 下個(gè)月加一周,上午10點(diǎn) next_month_week_ten = now + relativedelta.relativedelta(months=1, weeks=1, hour=10) print(next_month_week_ten) # 2019-01-28 10:47:31.005604# 一年后的前一個(gè)月 next_year_premonth = now + relativedelta.relativedelta(years=1, months=-1) print(next_year_premonth) # 2019-11-21 15:47:31.005604

?

轉(zhuǎn)載于:https://www.cnblogs.com/Zzbj/p/10156501.html

總結(jié)

以上是生活随笔為你收集整理的时间模块和时间工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。