python學習5--生成日期/生日


前言

python接口自動化添加員工信息時,需要填寫生日,批量添加員工,如何隨機生成生日呢?

python提供了一個time和calendar模塊可以用於格式化日期和時間。

一、了解python3 日期和時間的基礎知識

1.1 時間戳,time.time() #1597902084.742635

 1.2 時間元組 格式:time.localtime(時間戳 或 空)、(年、月、日、小時、分鍾、秒、一周第幾日、一年第幾日、夏令時)、time.strptime(時間字符串,時間格式字符串)

  很多python函數用一個元組裝起來的9組數字處理時間 

  時間元組:time.localtime(time.time())   

        time.localtime()  #time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=14, tm_min=2, tm_sec=44, tm_wday=3, tm_yday=233, tm_isdst=0)

       a=(2020,8,20,11,25,38,0,0,0) #自定義 9組數字

       time.strptime("Thu Aug 20 11:42:27 2020","%a %b %d %H:%M:%S %Y")

       time.strptime("2020-08-20 11:25:38","%Y-%m-%d %H:%M:%S")

1.3 格式化時間 格式:time.asctime(時間元組)

    time.asctime(a))

    time.asctime(time.localtime())     #Thu Aug 20 13:41:24 2020     

1.4 格式化日期  格式:time.strftime(日期形式字符串,時間元組)

       time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())

       time.strftime("%Y-%m-%d %H:%M:%S",a)  #2020-08-20 13:41:24

       time.strftime("%a %b %d %H:%M:%S %Y",a)  #Thu Aug 20 13:41:24 2020    

1.5 格式字符串轉換為時間戳   格式:time.mktime(time.strptime(字符串,日期格式字符串)     

    a="Thu Aug 20 11:42:27 2020"
    print(time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))
    b="2020-08-20 11:25:38"
    print(time.mktime(time.strptime(b,"%Y-%m-%d %H:%M:%S")))
import time
print("時間戳:{}".format(time.time())) #當前時間戳
#時間元組
print("==時間元組==")
print(time.localtime(time.time())) #當前時間元組
print(time.localtime())
a=(2020,8,20,11,25,38,0,0,0)#自定義時間元組
print(time.strptime("Thu Aug 20 11:42:27 2020","%a %b %d %H:%M:%S %Y"))#格式化時間轉元組
print(time.strptime("2020-08-20 11:25:38","%Y-%m-%d %H:%M:%S"))#格式化日期轉元組
#格式化的時間 #Mon Aug 20 11:25:38 2020
print("==格式化時間==")
print(time.asctime(a))
print(time.asctime(time.localtime(time.time())))

#格式化日期
#格式化成 2016-01-01 11:20:30形式
print("==格式化日期==")
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
print(time.strftime("%Y-%m-%d %H:%M:%S",a))
#格式化成 2016-01-01 形式
print(time.strftime('%Y-%m-%d',a))
#格式化成Sat Mar 20 11:20:20 2016形式
print(time.strftime("%a %b %d %H:%M:%S %Y",time.localtime()))
print(time.strftime("%a %b %d %H:%M:%S %Y",a))
#格式字符串轉換成時間戳
aa="Thu Aug 20 11:42:27 2020"
print(time.mktime(time.strptime(aa,"%a %b %d %H:%M:%S %Y")))
bb="2020-08-20 11:25:38"
print(time.mktime(time.strptime(bb,"%Y-%m-%d %H:%M:%S")))
print(time.strptime(bb,"%Y-%m-%d %H:%M:%S"))#時間元組
#將時間元組轉成時間戳
print(time.mktime(a))    

  運行結果:

時間戳:1597906614.8230116
==時間元組==
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=14, tm_min=56, tm_sec=54, tm_wday=3, tm_yday=233, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=14, tm_min=56, tm_sec=54, tm_wday=3, tm_yday=233, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=11, tm_min=42, tm_sec=27, tm_wday=3, tm_yday=233, tm_isdst=-1)
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=11, tm_min=25, tm_sec=38, tm_wday=3, tm_yday=233, tm_isdst=-1)
==格式化時間==
Mon Aug 20 11:25:38 2020
Thu Aug 20 14:56:54 2020
==格式化日期==
2020-08-20 14:56:54
2020-08-20 11:25:38
2020-08-20
Thu Aug 20 14:56:54 2020
Mon Aug 20 11:25:38 2020
1597894947.0
1597893938.0
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=11, tm_min=25, tm_sec=38, tm_wday=3, tm_yday=233, tm_isdst=-1)
1597893938.0  

 二、生成日期/生日

import time
import random
#日期轉換成元組
begin=(1971,1,1,0,0,0,0,0,0) #后面3個填寫要求范圍內的任意數字
end=(2014,12,31,23,59,59,0,0,0)
#將時間元組轉化成時間戳
dbegin=time.mktime(begin)
dend=time.mktime(end)
#隨機取值
rdate=random.randint(dbegin,dend)
#時間戳轉時間元組,格式化日期
date=time.strftime("%Y-%m-%d",time.localtime(rdate))
print(date)

 運行結果

1981-10-08

 三、總結

 平時經常使用:

  1.獲取時間戳

  2.時間戳轉日期

a=int(time.time())
print(a)
print(time.strftime("%Y-%m-%d",time.localtime(a)))

  3.time下的方法:

time.time() #時間戳, 

time.localtime(時間戳) #時間元組

time.strptime(字符串,時間格式) #時間元組, 

(1971,1,1,0,0,0,0,0,0) #時間元組    

time.strftime(時間格式,時間元組) #日期字符串,

time.asctime(時間元組) #時間字符串

time.mktime(時間元組) 時間戳


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM