Python 常見時間處理


Python 程序能用很多方式處理日期和時間,轉換日期格式是一個常見的功能。

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

時間間隔是以秒為單位的浮點小數。

每個時間戳都以自從1970年1月1日午夜(歷元)經過了多長時間來表示。

Python 的 time 模塊下有很多函數可以轉換常見日期格式。如函數time.time()用於獲取當前時間戳,

 

python中時間日期格式化符號:

# python中時間日期格式化符號:
# %y 兩位數的年份表示(00-99)
# %Y 四位數的年份表示(000-9999)
# %m 月份(01-12)
# %d 月內中的一天(0-31)
# %H 24小時制小時數(0-23)
# %I 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 當前時區的名稱
# %% %號本身

 

代碼實例

# 獲取時間戳
time1  = time.time()
print(time1)

# 獲取本地時間
localTime = time.localtime(time.time())

# 格式化本地時間
localTimeStrs = time.strftime("%Y-%m-%d %H:%M:%S",localTime)

print(localTime)
print(localTimeStrs)


# 計算時間差

import datetime

day1 = datetime.datetime(2018,5,16)
day2 = datetime.datetime(2018,4,16)

# 計算指定時間的間隔
print((day1-day2).days)

# 獲取當前時間
nowTime = datetime.datetime.now()
print("nowTime: ",nowTime)

# 當前指定時間
# 獲取當前年份
print(nowTime.year)
print(nowTime.day)
print(nowTime.month)
print(nowTime.hour)
print(nowTime.minute)
print(nowTime.second)

# 當前時間往前推29天計算日期,也就是近30天的其實范圍
beforeTime = nowTime - datetime.timedelta(days=29)

# 往后推就使用 + 號,當然還可以使用 hours(小時) 、minutes(分鍾)、seconds(秒)等單位運算。

print("beforeTime: ",beforeTime)

# 結果輸出

# 1526451775.666749
# time.struct_time(tm_year=2018, tm_mon=5, tm_mday=16, tm_hour=14, tm_min=22, tm_sec=55, tm_wday=2, tm_yday=136, tm_isdst=0)
# 2018-05-16 14:22:55
# 30
# nowTime:  2018-05-16 14:22:55.670309
# beforeTime:  2018-04-17 14:22:55.670309

 

日歷(Calendar)模塊

此模塊的函數都是日歷相關的,例如打印某月的字符月歷。

import calendar

cal = calendar.month(2018,2)
print(cal)


 February 2018
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

 

星期一是默認的每周第一天,星期天是默認的最后一天。更改設置需調用calendar.setfirstweekday()函數。模塊包含了以下內置函數:

序號 函數及描述
1 calendar.calendar(year,w=2,l=1,c=6)
返回一個多行字符串格式的year年年歷,3個月一行,間隔距離為c。 每日寬度間隔為w字符。每行長度為21* W+18+2* C。l是每星期行數。
2 calendar.firstweekday( )
返回當前每周起始日期的設置。默認情況下,首次載入caendar模塊時返回0,即星期一。
3 calendar.isleap(year)
是閏年返回True,否則為false。
4 calendar.leapdays(y1,y2)
返回在Y1,Y2兩年之間的閏年總數。
5 calendar.month(year,month,w=2,l=1)
返回一個多行字符串格式的year年month月日歷,兩行標題,一周一行。每日寬度間隔為w字符。每行的長度為7* w+6。l是每星期的行數。
6 calendar.monthcalendar(year,month)
返回一個整數的單層嵌套列表。每個子列表裝載代表一個星期的整數。Year年month月外的日期都設為0;范圍內的日子都由該月第幾日表示,從1開始。
7 calendar.monthrange(year,month)
返回兩個整數。第一個是該月的星期幾的日期碼,第二個是該月的日期碼。日從0(星期一)到6(星期日);月從1到12。
8 calendar.prcal(year,w=2,l=1,c=6)
相當於 print calendar.calendar(year,w,l,c).
9 calendar.prmonth(year,month,w=2,l=1)
相當於 print calendar.calendar(year,w,l,c)。
10 calendar.setfirstweekday(weekday)
設置每周的起始日期碼。0(星期一)到6(星期日)。
11 calendar.timegm(tupletime)
和time.gmtime相反:接受一個時間元組形式,返回該時刻的時間戳(1970紀元后經過的浮點秒數)。
12 calendar.weekday(year,month,day)
返回給定日期的日期碼。0(星期一)到6(星期日)。月份為 1(一月) 到 12(12月)。

 


免責聲明!

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



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