天天看點

Python是如何表示時間的?2個子產品、3種方式,1文搞定~

Python是如何表示時間的?2個子產品、3種方式,1文搞定~

大家好,這裡是程式員晚楓。知識星球:Python讀者圈

在Python中,表示時間的格式一共有3種:時間戳、結構化時間、格式化時間,2個子產品:time、datetime。

今天我們來一起看一下。

一、3種時間格式,4種生成方式

1、時間戳 - 記錄時間

時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。

import time

time.time() # 時間戳
# 輸出:1659682465.1875775
           

這種方式得到的時間,一般用來資料庫存儲,非常節省存儲空間。

2、結構化的時間 - 使用時間

所謂結構化時間,你可以了解成把時間進行了分類,分為了:年月日時分秒,你想用哪個類别,就可以直接取出哪個類别。

如果我們想取出一個時間片段,用這個方法就很簡單了,例如:取出目前時間的分鐘數。

import time

time.localtime().tm_min # 結構化時間
# 輸出:30
           

3、格式化的時間 - 展示時間

這個方法,用來給使用者展示時間。

import time

time.strftime('%Y-%m-%d %H-%M-%S %A')# 格式化時間
# 輸出:'2022-08-04 19-08-35 Friday'

import datetime

datetime.datetime.now()#格式化時間
# 輸出:datetime.datetime(2022, 8, 4, 19, 9, 0, 328515)
           

二、2個子產品:time,為什麼有datetime子產品?

在前面生成時間的代碼中,我們使用了2個子產品:time和datetime,好像它們之間的功能也是重複的。

既然有了time子產品,為什麼還要有datetime?那是為了簡化time的使用。

datatime子產品重新封裝了time子產品,提供更多接口,提供的類有:date,time,datetime,timedelta,tzinfo。

應用場景

在之前的文章中我們講過:萬字總結!Python 實作定時任務的八種方案

在定時任務中,我想設定一個一周後提醒我的功能。

如果用time子產品進行實作

import time

time.time() + 7*24*60*60 # 7天*24小時*60分鐘*60秒
           

需要自己計算出7天後的時間戳,而如果使用datetime子產品,這件事就很簡單了:直接

days + 7

,如下圖代碼所示。

import datetime

datetime.datetime.now() + datetime.timedelta(days=7)#格式化時間
           

三、互相之間的轉換