亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解python如何正確使用時間戳,日期,時間,時區(qū)

 更新時間:2024年11月03日 13:52:35   作者:仙草哥哥  
這篇文章主要為大家介紹了如何在python中正確使用時間戳,日期,時間,時區(qū),文中通過簡單的示例進行了詳細介紹,希望對大家有一定的幫助

時間概念

utc與時區(qū)

UTC是Coordinated Universal Time的縮寫,是全球時間的標準,UTC時間不受時區(qū)和夏令時的影響,是時間的標準。全球各地的時間以UTC時間為參考進行調(diào)整。

時區(qū)是Time Zone,是地球上按照經(jīng)度劃分的區(qū)域,每個區(qū)域有自己的標準時間,時區(qū)與UTC時間的差距通常以小時為單位(但有些時區(qū)偏移的時間有30分鐘)。整個地球被劃分為24個主要時區(qū),每個時區(qū)大約覆蓋15度經(jīng)度(360度/24小時)

北京時間是東八區(qū),東八區(qū)也就是比UTC時間偏移了8小時,也就是UTC+8,在世界上,同樣在東八區(qū)的,還有澳大利亞的地區(qū)。

紐約時間是西五區(qū),也就是UTC-5,因此,距離北京時間的東八區(qū)標準時間差是13小時。但是需要注意的是,當(dāng)紐約地區(qū)開始夏令時的時候,會變成UTC-4,此時就是常見的12小時時差了。

東京時間是東九區(qū),也就是UTC+9,因此,距離北京時間的東八區(qū)差是1小時,且是早1小時。

夏令時

夏令時是一種人為調(diào)整時鐘的制度,通常在春季將時鐘向前調(diào)一個小時,其目的是延長晚間的日照時間,旨在更有效地利用日光資源,減少能源消耗。

其中,北半球的高緯度國家通常使用夏令時,因為其緯度高,日照變化大。與之相反,接近赤道的地區(qū),日照變化不大,因此通常不用夏令時。例如大部分亞洲國家,如中國,日本,韓國,都不使用夏令時。

沒有使用過夏令時地區(qū)的人,通常對于夏令時的作用不太了解,具體來說:夏令時期間,時鐘被撥快一小時。這意味著人們按照新的時間表作息,早上實際比平時早起一小時,但由于夏季天亮較早,對生活影響不大。下午下班時,按照新的時間,天色仍然明亮,人們可以在下班后享受更多的日照時間。

時間戳

時間戳是Timestamp是一種表示特定時間點的數(shù)字格式,基于UTC時間的1970年1月1日00:00:00以來經(jīng)過的秒數(shù)或毫秒數(shù)來表示,時間戳可以精確地標識一個具體的時間點,該時間點不受時區(qū)影響。

時間戳在編程中有很大作用,例如,記錄某個系統(tǒng)事件,用戶注冊的時間,或者通過計算時間戳的差,來計算時間間隔。

time

通用格式化

time主要處理時間的獲取和簡單的格式化,如果需要更復(fù)雜的日期和時間操作,應(yīng)該嘗試使用datetime

常用的格式化字符串方式如下所示,并且datetime中同樣也這樣使用

  • %Y:四位年份
  • %m:兩位月份(01-12)
  • %d:兩位日期(01-31)
  • %H:兩位小時(00-23)
  • %M:兩位分鐘(00-59)
  • %S:兩位秒(00-59)

時間戳

獲取當(dāng)前時間戳

import time
 
timestamp = time.time()
print("當(dāng)前時間戳:", timestamp)

時間戳可以用于記錄時間間隔,不過,如果要更精準的計時可以用

import time
 
start = time.perf_counter()
time.sleep(2)
end = time.perf_counter()
print(f"操作耗時: {end - start} 秒")

時間戳轉(zhuǎn)為時間對象

時間戳轉(zhuǎn)換為struct_time本地時間

timestamp = time.time()
local_time = time.localtime(timestamp)
print("本地時間:", local_time)

將時間戳轉(zhuǎn)換為utc時間

timestamp = time.time()
utc_time = time.gmtime(timestamp)
print("UTC時間:", utc_time)

時間對象轉(zhuǎn)為時間戳

import time
 
struct = time.strptime("2024-11-02 22:00:00", "%Y-%m-%d %H:%M:%S")
timestamp = time.mktime(struct)
print("時間戳:", timestamp)  # 時間戳: 1730556000.0

時間格式化

將一個時間戳快速轉(zhuǎn)為可讀時間

timestamp = time.time()
readable_time = time.ctime(timestamp)
print(readable_time)  # 格式如Sat Nov  2 10:32:27 2024

根據(jù)時間字符串,創(chuàng)建時間對象

time_str = "2024-11-02 22:00:00"
parsed_time = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
 
print(parsed_time)

根據(jù)時間對象,轉(zhuǎn)為字符串

time_str = "2024-11-02 22:00:00"
parsed_time = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
 
formatted_time = time.strftime("%Y年%m月%d日%H點%M分", parsed_time)
print("格式化時間:", formatted_time)  # 格式化時間:2024年11月02日22點00分

時間暫停

時間是不會暫停的,實際上該功能是程序暫停

import time
 
print("暫停前")
time.sleep(3)  # 暫停3秒
print("暫停后")

datetime

date日期

獲取當(dāng)前日期

today = datetime.date.today()
print("今天的日期:", today)  # 格式如2024-11-02

datetime日期時間

獲取當(dāng)前時間

now_time = datetime.datetime.now().time()
print("當(dāng)前時間:", now_time)  # 格式如10:46:50.506231

獲取當(dāng)前日期與時間

now = datetime.datetime.now()
print("當(dāng)前日期和時間:", now)  # 格式如2024-11-02 10:47:44.299445

獲取UTC時間

utc_now = datetime.datetime.utcnow()
print("UTC時間:", utc_now)

創(chuàng)建日期時間對象

創(chuàng)建日期對象

specific_date = datetime.date(2024, 11, 2)
print("特定日期:", specific_date)

創(chuàng)建時間對象

specific_time = datetime.time(22, 0, 0)
print("特定時間:", specific_time)

創(chuàng)建日期時間對象

specific_datetime = datetime.datetime(2024, 11, 2, 22, 0, 0)
print("特定日期和時間:", specific_datetime)

時間字符串格式化與解析

時間字符串格式化

now = datetime.datetime.now()
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print("格式化日期時間:", formatted)

時間字符串解析

time_str = "2024-11-2 22:00:00"
parsed_datetime = datetime.datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S")
print("解析后的日期時間對象:", parsed_datetime)

時間間隔

使用timedelta計算時間間隔的日期

from datetime import date, timedelta
 
today = date.today()
future_date = today + timedelta(days=10)
print("10天后的日期:", future_date)
 
past_date = today - timedelta(weeks=1)
print("一周前的日期:", past_date)

計算時間間隔的日期時間

from datetime import datetime, timedelta
 
now = datetime.now()
 
future_time = now + timedelta(minutes=10)
print("10分鐘后的日期時間:", future_time)
 
past_time = now - timedelta(hours=2)
print("2小時前的日期時間:", past_time)

zoneinfo

時間轉(zhuǎn)換

在python 3.9以后,引入了zoneinfo用于處理時區(qū),并且能夠直接用于datetime

from datetime import datetime
from zoneinfo import ZoneInfo
 
now_utc = datetime.now(ZoneInfo("UTC"))
print("UTC時間:", now_utc)
 
# 轉(zhuǎn)換為北京時間
now_beijing = now_utc.astimezone(ZoneInfo("Asia/Shanghai"))
print("北京時間:", now_beijing)
 
# 轉(zhuǎn)換為紐約時間
now_newyork = now_utc.astimezone(ZoneInfo("America/New_York"))
print("紐約時間:", now_newyork)

實際上,時間轉(zhuǎn)換也可以自行進行計算,例如,我們已經(jīng)了解了北京時間是UTC+8,紐約時間是UTC-5

from datetime import datetime, timedelta
 
now_utc = datetime.utcnow()
print("UTC時間:", now_utc)
 
now_beijing = now_utc + timedelta(hours=8)
print("北京時間:", now_beijing)
 
now_newyork = now_utc - timedelta(hours=5)
print("紐約時間:", now_newyork)

列出所有時區(qū)

所有時區(qū)

import zoneinfo
 
print(zoneinfo.available_timezones())

遍歷找到其中的Asia時區(qū)

import zoneinfo
 
for zone in zoneinfo.available_timezones():
    if "Asia" in zone:
        print(zone)

獲取時區(qū)時間

如果在使用當(dāng)前時間的時候,總是自行設(shè)置本地時區(qū)的時間,而不依賴于機器設(shè)置,可以獲得更好的跨平臺性

from datetime import datetime
from zoneinfo import ZoneInfo
 
tz_shanghai = ZoneInfo("Asia/Shanghai")
tz_newyork = ZoneInfo("America/New_York")
 
now_shanghai = datetime.now(tz_shanghai)
now_newyork = datetime.now(tz_newyork)
 
print("北京時間:", now_shanghai)
print("紐約時間:", now_newyork)

以上就是詳解python如何正確使用時間戳,日期,時間,時區(qū)的詳細內(nèi)容,更多關(guān)于python時間的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論