Python - 日期和時間
大家好,未來的Python巫師們!今天,我們將要走進Python日期和時間的奇幻世界。作為你友善的鄰居電腦老師,我非常高興能夠引導你們進行這次冒險。所以,拿起你的虛擬魔杖(鍵盤),我們一起深入探險吧!
什么是紀元刻度?
在我們開始操作日期和時間之前,讓我們先了解一個基本概念:紀元刻度。在電腦的世界中,時間常常是以刻度來計量的。但刻度究竟是什麼呢?
紀元刻度就像是你的電腦的心跳。它是你的電腦時鐘可以測量的最小時間單位。在Python中,我們將紀元刻度定義為自1970年1月1日00:00:00 UTC以來經過的秒數。這個時間點通常被稱為"紀元"。
我們來看看如何獲取當前的紀元刻度值:
import time
ticks = time.time()
print("當前紀元刻度值:", ticks)
如果你執行這段代碼,你會看到一個很大的數字被打印出來。這就是自紀元以來經過的秒數。相當酷對吧?
什麼是TimeTuple?
現在,讓我們來談談TimeTuple。這不是一種新的舞蹈(雖然它聽起來像是!),而是Python表示時間的一種方式。
TimeTuple是一個包含9個元素的元組,它們代表時間的不同方面:
索引 | 屬性 | 值 |
---|---|---|
0 | 年 | (例如,2023) |
1 | 月 | 1-12 |
2 | 日 | 1-31 |
3 | 時 | 0-23 |
4 | 分 | 0-59 |
5 | 秒 | 0-61 (60和61為閏秒) |
6 | 週末日 | 0-6 (0為星期一) |
7 | 年中日 | 1-366 |
8 | 暑假 | -1, 0, 1 (夏日節能時間旗標) |
別擔心,如果這些看起來令人生畏。我們會在這堂課中經常使用這些元素,你會很快熟悉它們的!
獲取當前時間
讓我們從一些簡單的事情開始:獲取當前時間。Python有個非常容易的方法可以做到這一點,那就是使用time
模塊:
import time
current_time = time.localtime()
print("當前時間:", current_time)
當你運行這個時,你會看到一個TimeTuple被打印出來。每個數字對應我們剛才看到的表格中的一個元素。例如,如果你看到time.struct_time(tm_year=2023, tm_mon=6, tm_mday=15, tm_hour=14, tm_min=30, tm_sec=0, tm_wday=3, tm_yday=166, tm_isdst=0)
,那就表示現在是2023年6月15日下午2:30。
獲取格式化的時間
雖然TimeTuples對電腦很有用,但它們對人來說不太友好。讓我們以一種更容易閱讀的方式格式化我們的時間:
import time
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("格式化時間:", formatted_time)
這將打印出像"2023-06-15 14:30:00"這樣的東西。好多了吧?%Y
、%m
、%d
等是格式代碼,它們告訴Python如何安排時間元素。這就像給Python一個模板,告訴它你希望你的時間看起來是什麼樣子。
獲取一個月的日曆
現在,讓我們加大力度,打印出一個月的整個日曆。我們將使用calendar
模塊來做到這一點:
import calendar
year = 2023
month = 6
print(calendar.month(year, month))
這將打印出2023年6月的精美格式化日曆。這就像在你的Python程序中有一個迷你桌面日曆一樣!
time模塊
我們已經使用了time
模塊,但讓我們進一步探索它。這個模塊提供了各種與時間相關的函數。以下是一些有用的函數:
import time
print("自紀元以來的當前時間(秒):", time.time())
print("當前本地時間:", time.ctime())
print("休眠2秒...")
time.sleep(2)
print("醒來!")
sleep()
函數在你想讓你的程序暫停一段時間時特別有用。這就像告訴你的代碼要稍作休息一樣!
calendar模塊
我們已經看到了如何打印一個月,但calendar
模塊能做的還有很多:
import calendar
print("2023年是閏年嗎?", calendar.isleap(2023))
print("2000年到2050年之間有多少閏年?", calendar.leapdays(2000, 2050))
print("2023年6月15日是星期幾?", calendar.weekday(2023, 6, 15))
這些函數幫助你輕鬆地處理日曆和日期。再也沒有用手指計算閏年的困擾了!
Python datetime模塊
datetime
模塊就像是Python中時間操作的多功能軍刀。它結合了time
和calendar
模塊的功能,並添加了更多特點。
from datetime import datetime, date, time
# 當前日期和時間
now = datetime.now()
print("當前日期和時間:", now)
# 創建特定日期
my_birthday = date(1990, 5, 15)
print("我的生日:", my_birthday)
# 創建特定時間
alarm = time(7, 30, 0)
print("鬧鐘設定為:", alarm)
使用datetime
,你可以輕鬆地創建、操作和格式化日期和時間。
Python date對象
datetime
模塊中的date
對象讓你可以處理日期(年、月、日):
from datetime import date
today = date.today()
print("今天的日期:", today)
print("年:", today.year)
print("月:", today.month)
print("日:", today.day)
這就像擁有一個智能日曆,知道今天是什麼日子,並能告訴你所有有關它的信息!
Python time對象
同樣地,time
對象讓你可以處理時間(時、分、秒、微秒):
from datetime import time
lunch_time = time(12, 30, 0)
print("午餐時間:", lunch_time)
print("時:", lunch_time.hour)
print("分:", lunch_time.minute)
print("秒:", lunch_time.second)
現在你可以精確地安排你的編碼休息時間了!
Python datetime對象
datetime
對象結合了date
和time
,讓你完全控制 both:
from datetime import datetime
now = datetime.now()
print("當前日期和時間:", now)
print("當前年:", now.year)
print("當前月:", now.month)
print("當前日:", now.day)
print("當前時:", now.hour)
print("當前分:", now.minute)
print("當前秒:", now.second)
這就像擁有一個超級手錶,知道當前瞬間的所有信息!
Python timedelta對象
最後但並非最不重要,讓我們來談談timedelta
。這個對象表示一段時間的持續時間,它對日期算術非常有用:
from datetime import datetime, timedelta
now = datetime.now()
print("當前日期和時間:", now)
# 加1天
tomorrow = now + timedelta(days=1)
print("明天的這個時間:", tomorrow)
# 減1周
last_week = now - timedelta(weeks=1)
print("上一周的這個時間:", last_week)
有了timedelta
,你可以在你的代碼中進行時間旅行!好吧,有點像。你可以輕鬆地計算未來和過去的日期,這對許多應用程序都非常方便。
就這樣,我的年輕Python巫師們!我們已經走過了Python日期和時間的奇妙世界。記住,練習成就完美,所以不要猶豫去實驗這些概念。在你意識到之前,你將能夠像真正的編碼時間領主一樣操縱時間!
Credits: Image by storyset