主要包含處理年月日,時分秒對應的時間,主要著重時分秒。
使用time模塊要先導入
import time
專門處理年月日
import datetime
1、獲取時間
時間戳:就是從格林威治時間(1970年1月1日0:0:0)到當前時間的時間差(單位是秒)
- 1、存時間以時間戳的形式去存,可以節省空間(一個浮點數的內存是4/8個字節,若存字符串一個字符占2個字節)
- 2、自帶對時間加密的功能(加密更方便)
time1 = time.time()
print(time1,type(time1))
1533803211.2256541 <class 'float'>
2、將時間戳轉換成struct_time
localtime(seconds)
參數seconds:
a、不傳參,就是將當前時間對應的時間戳轉換成struct_time
b、傳參,就是將指定的時間轉換成struct_time
time1 = time.localtime()
print(time1)
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=9, tm_hour=16, tm_min=26, tm_sec=51, tm_wday=3, tm_yday=221, tm_isdst=0)
struct_time的結構
tm_year:年
tm_mon:月
tm_mday:日
tm_hour:時
tm_min:分
tm_sec:秒
tm_wday:星期(0-6 -->周一-周天)
tm_yday:當前是當年的第幾天
tm_isdst:是否是夏令時
struct1 = time.localtime(100000)
print(struct1)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=2, tm_hour=11, tm_min=46, tm_sec=40, tm_wday=4, tm_yday=2, tm_isdst=0)
2.1將struct_time轉換成時間戳
"""
mktime(結構時間)
"""
"""2018-8-31 23:30:40"""
strc = time.strptime('2018-8-31 23:30:40','%Y-%m-%d %H:%M:%S')
time1 = time.mktime(strc)
# 時間加一個小時
time1 += 3600
print('===',time.localtime(time1))
=== time.struct_time(tm_year=2018, tm_mon=9, tm_mday=1, tm_hour=0, tm_min=30, tm_sec=40, tm_wday=5, tm_yday=244, tm_isdst=0)
3、時間的格式轉換
"""
strftime(時間格式,時間)
將時間以指定的格式轉換成字符串
"""
time_str = time.strftime('%j',time.localtime())
print(time_str)
"""
strptime(需要轉換的字符換,時間格式)
將時間字符串轉換成相應的struct_time
"""
struct_time = time.strptime('今天是8102年8月9號','今天是%Y年%m月%d號')
print(struct_time)
4、延遲
"""
sleep(秒)
可以讓線程阻塞指定的時間
"""
- %y 兩位數的年份表示(00-99)
- %Y 四位數的年份表示(000-9999)
- %m 月份(01-12)
- %d 月內中的一天(0-31)
- %H 24小時制小時數(0-23)
- %h 12小時制小時數(01-12)
- %M 分鐘數(00=59)
- %S 秒(00-59)
- %a 本地簡化星期名稱
- %A 本地完整星期名稱
- %b 本地簡化的月份名稱
- %B 本地完整的月份名稱
- %c 本地相應的日期表示和時間表示
- %j 年內的一天(001-366)
- %p 本地A.M.或P.M.的等價符
- %U 一年中的星期數(00-53)星期天為星期的開始
- %w 星期(0-6),星期天為星期的開始
- %W 一年中的星期數(00-53)星期一為星期的開始
- %x 本地相應的日期表示
- %X 本地相應的時間表示
- %Z 當前時區的名稱
- %% %號本身
import datetime
# 1、日期類(date)--只能表示年月日
"""1、類的字段"""
# 最小日期
print(datetime.date.min,type(datetime.date.min))
# 最大日期
print(datetime.date.max,type(datetime.date.max))
# 最小單位
print(datetime.date.resolution)
"""2.類方法"""
# 獲取當前日期
today1 = datetime.date.today()
print(today1)
# 將時間戳轉換成日期
today2 = datetime.date.fromtimestamp(1000000)
print(today2)
"""2、對象屬性"""
print(today1.year,type(today1.year))
print(today1.month)
print(today1.day)
"""3、對象方法"""
# 1、獲取星期(0-6 -->周一到周天)
print(today1.weekday())
print(today1.isoweekday()) #返回的1-7代表周一到周日
# 2、將指定日期轉換成指定格式的字符串日期
print(today1.strftime('%Y-%m-%d %w'))
# 創建日期對象
print(datetime.date(2017,8,29))
打印結果
0001-01-01 <class 'datetime.date'>
9999-12-31 <class 'datetime.date'>
1 day, 0:00:00
2018-08-09
1970-01-12
2018 <class 'int'>
8
9
3
4
2018-08-09 4
2017-08-29