欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的時(shí)間與日期處理技巧分享

 更新時(shí)間:2025年04月14日 09:42:31   作者:花小姐的春天  
在Python的世界里,時(shí)間也很有個(gè)性,格式多種多樣、時(shí)區(qū)坑多如山、轉(zhuǎn)換容易讓人頭禿……但別擔(dān)心,今天我們就來(lái)聊聊Python中的時(shí)間與日期處理,讓你從時(shí)間小白變成時(shí)間大師,需要的朋友可以參考下

時(shí)間這東西,最神奇的地方就在于——它從來(lái)不等人!就像你說(shuō)好5分鐘后起床,結(jié)果一睜眼發(fā)現(xiàn)已經(jīng)是中午了;或者老板讓你統(tǒng)計(jì)個(gè)Excel報(bào)表,你想著"一會(huì)兒就搞定",結(jié)果時(shí)間一晃,天都黑了。

在Python的世界里,時(shí)間也很有個(gè)性,格式多種多樣、時(shí)區(qū)坑多如山、轉(zhuǎn)換容易讓人頭禿,但別擔(dān)心,今天我們就來(lái)聊聊Python中的時(shí)間與日期處理,讓你從時(shí)間小白變成時(shí)間大師!

1. 先來(lái)個(gè)簡(jiǎn)單的“時(shí)間基礎(chǔ)操作”

如果你是Python初學(xué)者,那你肯定會(huì)用到datetime模塊。讓我們從最簡(jiǎn)單的創(chuàng)建和輸出時(shí)間開(kāi)始。

獲取當(dāng)前時(shí)間

import datetime
now = datetime.datetime.now()
print(now)

這段代碼簡(jiǎn)單明了,datetime.now()會(huì)返回當(dāng)前的日期和時(shí)間。例如:

2025-03-19 12:30:45.678901

當(dāng)然,你也可以自定義格式來(lái)輸出時(shí)間。

格式化輸出

formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_time)

這段代碼使用strftime方法來(lái)格式化日期和時(shí)間。常見(jiàn)的格式化代碼包括:

格式符含義
%Y四位年份(2025)
%m月份(01-12)
%d日期(01-31)
%H小時(shí)(00-23)
%M分鐘(00-59)
%S秒(00-59)

輸出結(jié)果類(lèi)似:

2025-03-19 12:30:45

這是不是比原始的時(shí)間輸出看起來(lái)更加整潔了?

2. 從字符串轉(zhuǎn)換為日期對(duì)象

假如你從文件或者用戶(hù)輸入中獲取到一個(gè)時(shí)間字符串,那該怎么把它轉(zhuǎn)成Python中的日期對(duì)象呢?別擔(dān)心,這個(gè)問(wèn)題簡(jiǎn)單得很,strptime方法來(lái)幫忙。

time_str = "2025-03-19 12:30:45"
time_obj = datetime.datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S")
print(time_obj)

這里,strptime方法會(huì)根據(jù)你提供的格式化字符串,將時(shí)間字符串轉(zhuǎn)化為一個(gè)datetime對(duì)象。轉(zhuǎn)換后的結(jié)果會(huì)是一個(gè)標(biāo)準(zhǔn)的日期時(shí)間對(duì)象,可以繼續(xù)進(jìn)行各種操作。

3. 時(shí)間加減操作

獲取未來(lái)或者過(guò)去的時(shí)間

有時(shí)候你可能需要獲取一個(gè)日期的前幾天或后幾天的時(shí)間。例如,假設(shè)今天是2025年3月19日,你想知道7天后的日期。通過(guò)timedelta,這可以輕松做到。

today = datetime.datetime.now()
delta = datetime.timedelta(days=7)
future_date = today + delta
print(future_date)

輸出結(jié)果:

2025-03-26 12:30:45.678901

同樣,你也可以做日期的減法,得到過(guò)去的某個(gè)日期。

past_date = today - delta
print(past_date)

輸出結(jié)果:

2025-03-12 12:30:45.678901

4. 處理時(shí)區(qū)和夏令時(shí)

大家可能知道,處理時(shí)區(qū)有點(diǎn)麻煩,因?yàn)椴煌臅r(shí)區(qū)之間會(huì)有時(shí)差。而且,夏令時(shí)(DST)會(huì)讓你頭疼不已。比如說(shuō),北京時(shí)間與紐約時(shí)間的差異就會(huì)隨著夏令時(shí)的變化而有所不同。怎么處理這些問(wèn)題呢?答案就是pytz庫(kù)。

安裝pytz庫(kù)

pip install pytz

設(shè)置時(shí)區(qū)

import pytz
now = datetime.datetime.now(pytz.timezone("Asia/Shanghai"))
print(now)

ny_time = datetime.datetime.now(pytz.timezone("America/New_York"))
print(ny_time)

通過(guò)pytz,你可以設(shè)置時(shí)區(qū),并且正確處理夏令時(shí)的轉(zhuǎn)換。如果你正在做涉及全球用戶(hù)的應(yīng)用,這個(gè)庫(kù)真的能幫你避免不少麻煩。

5. 處理日期范圍

有時(shí)候我們需要生成一個(gè)日期范圍,比如從2025年1月1日到2025年1月10日。這個(gè)可以用date_range來(lái)輕松搞定。

import pandas as pd
date_range = pd.date_range(start="2025-01-01", end="2025-01-10")
print(date_range)

輸出的結(jié)果是一個(gè)日期范圍:

DatetimeIndex(['2025-01-01', '2025-01-02', '2025-01-03', '2025-01-04',
               '2025-01-05', '2025-01-06', '2025-01-07', '2025-01-08',
               '2025-01-09', '2025-01-10'],
              dtype='datetime64[ns]', freq='D')

非常適合用來(lái)生成日志時(shí)間戳、安排任務(wù)等。

6. 不常見(jiàn)但實(shí)用的時(shí)間操作

獲取一周的第幾天

now = datetime.datetime.now()
weekday = now.weekday()  # 周一是0,周日是6
print(f"今天是星期{weekday + 1}")

這段代碼會(huì)返回今天是星期幾,輸出類(lèi)似“今天是星期3”。

獲取月份的天數(shù)

import calendar
year, month = 2025, 2
days_in_month = calendar.monthrange(year, month)[1]
print(f"{year}年{month}月有 {days_in_month} 天")

這段代碼會(huì)返回某年的某個(gè)月有多少天,比如:“2025年2月有 28 天”

獲取某個(gè)月的第一天和最后一天

from datetime import date
first_day = date(year, month, 1)
last_day = date(year, month, days_in_month)
print(first_day, last_day)

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

如果你需要一個(gè)時(shí)間戳(自1970年1月1日以來(lái)的秒數(shù)),可以使用timestamp()

timestamp = datetime.datetime.now().timestamp()
print(timestamp)

轉(zhuǎn)換為UTC時(shí)間

如果你需要將本地時(shí)間轉(zhuǎn)為UTC時(shí)間:

now_utc = datetime.datetime.now(pytz.utc)
print(now_utc)

判斷某年是否是閏年

def is_leap_year(year):
    return calendar.isleap(year)

print(is_leap_year(2024))  # True(閏年)
print(is_leap_year(2025))  # False(平年)

計(jì)算兩個(gè)日期之間的工作日天數(shù)

import numpy as np
start_date = datetime.date(2025, 3, 1)
end_date = datetime.date(2025, 3, 10)
workdays = np.busday_count(start_date.strftime('%Y-%m-%d'), end_date.strftime('%Y-%m-%d'))
print(f"工作日天數(shù): {workdays}")

小結(jié)

今天,我們通過(guò)一些簡(jiǎn)單又實(shí)用的代碼,了解了如何在Python中處理時(shí)間和日期。雖然時(shí)間和日期看起來(lái)是一塊很基礎(chǔ)的內(nèi)容,但細(xì)節(jié)處理起來(lái)可真是個(gè)大坑,尤其是時(shí)區(qū)、夏令時(shí)等問(wèn)題。所以,掌握這些基本技巧,不僅能讓你的代碼更精確,還能避免很多因時(shí)間錯(cuò)誤而引發(fā)的麻煩。

以上就是Python中的時(shí)間與日期處理技巧分享的詳細(xì)內(nèi)容,更多關(guān)于Python時(shí)間與日期處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論