Belajar Python bisa menjadi ruang tenang di mana segala sesuatu benar-benar masuk akal. Mari saya tunjukkan sesuatu yang super praktis yang akan Anda gunakan setiap saat: mendapatkan waktu mulai dan akhir hari di Python. Percayalah, ini lebih sering muncul daripada yang Anda kira.
Saat Anda membangun aplikasi nyata - apakah itu skrip sederhana untuk mengatur file musik Anda atau sesuatu yang lebih besar - Anda akan terus-menerus perlu bekerja dengan tanggal dan waktu. Mungkin Anda ingin menemukan semua log dari hari ini, atau menghitung berapa lama Anda telah melakukan coding (bocoran: mungkin terlalu lama).
Alat yang Akan Benar-benar Anda Gunakan
Python memiliki modul bawaan bernama datetime
yang menangani semua hal terkait waktu. Ini seperti memiliki pisau lipat Swiss yang sangat bagus daripada mencoba menghitung semuanya secara manual.
from datetime import datetime, date, time
Cara Mendapatkan Waktu Mulai Hari Ini
Berikut cara paling mudah untuk mendapatkan tengah malam di awal hari ini:
from datetime import datetime, date, time
# Get today's date
today = date.today()
print(f"Today is: {today}")
# Combine it with midnight (00:00:00)
start_of_day = datetime.combine(today, time.min)
print(f"Start of day: {start_of_day}")
Saat Anda menjalankan ini, Anda akan melihat sesuatu seperti:
Today is: 2024-01-15
Start of day: 2024-01-15 00:00:00
Cara Mendapatkan Waktu Akhir Hari Ini
Untuk akhir hari, Anda ingin 23:59:59.999999 - pada dasarnya sedekat mungkin dengan tengah malam besok tanpa benar-benar menjadi besok:
from datetime import datetime, date, time
today = date.today()
end_of_day = datetime.combine(today, time.max)
print(f"End of day: {end_of_day}")
Ini akan memberi Anda:
End of day: 2024-01-15 23:59:59.999999
Contoh yang Lebih Praktis yang Akan Benar-benar Anda Gunakan
Katakanlah Anda sedang membangun sesuatu untuk melacak sesi coding Anda (karena jujur saja, waktu berlalu begitu cepat saat Anda sedang fokus):
from datetime import datetime, date, time
def get_day_boundaries(target_date=None):
"""
Get the start and end of a day.
If no date is provided, uses today.
"""
if target_date is None:
target_date = date.today()
start_of_day = datetime.combine(target_date, time.min)
end_of_day = datetime.combine(target_date, time.max)
return start_of_day, end_of_day
# For today
start, end = get_day_boundaries()
print(f"Today starts at: {start}")
print(f"Today ends at: {end}")
# For a specific date
from datetime import date
specific_date = date(2024, 12, 25) # Christmas
start, end = get_day_boundaries(specific_date)
print(f"Christmas starts at: {start}")
print(f"Christmas ends at: {end}")
Saat Anda Bekerja dengan Zona Waktu
Jika Anda berurusan dengan zona waktu (yang mungkin akan Anda lakukan pada akhirnya), Anda akan ingin menggunakan pustaka pytz
atau modul zoneinfo
yang lebih baru. Berikut cara modernnya:
from datetime import datetime, date, time
from zoneinfo import ZoneInfo
# Get start of day in a specific timezone
today = date.today()
timezone = ZoneInfo("America/Chicago") # Central Time
start_of_day = datetime.combine(today, time.min, timezone)
end_of_day = datetime.combine(today, time.max, timezone)
print(f"Start of day in Central Time: {start_of_day}")
print(f"End of day in Central Time: {end_of_day}")
Beberapa Skenario Dunia Nyata di Mana Ini Penting
Analisis Log: "Tampilkan semua kesalahan dari hari ini"
# Filter logs between start and end of day
today_start, today_end = get_day_boundaries()
todays_errors = [log for log in error_logs
if today_start <= log.timestamp <= today_end]
Pemrosesan Data: "Proses semua file yang dibuat hari ini"
import os
from datetime import datetime
today_start, today_end = get_day_boundaries()
for filename in os.listdir('/path/to/files'):
file_time = datetime.fromtimestamp(os.path.getctime(filename))
if today_start <= file_time <= today_end:
process_file(filename)
Jangan Terlalu Dipikirkan
Dengar, saya tahu mungkin terlihat ada jutaan cara untuk melakukan hal-hal ini, dan sejujurnya, memang begitu. Tapi mulailah dengan dasar-dasar ini. Ini akan mencakup 90% dari apa yang Anda butuhkan, dan ketika Anda menemukan kasus-kasus khusus, Anda akan memiliki dasar yang kuat untuk membangun di atasnya.
Yang penting adalah Anda belajar dan membangun sesuatu, bahkan ketika segala sesuatu yang lain terasa tidak stabil. Kode tidak menghakimi Anda, tidak berteriak, dan jika Anda merusak sesuatu, Anda selalu bisa memperbaikinya.
Teruslah berusaha, dan ingat - setiap ahli pernah menjadi pemula yang merasa benar-benar tersesat. Anda baik-baik saja.
Referensi Cepat untuk Salin-Tempel
from datetime import datetime, date, time
# Today's boundaries
today = date.today()
start_of_day = datetime.combine(today, time.min)
end_of_day = datetime.combine(today, time.max)
# Print them out
print(f"Day starts: {start_of_day}")
print(f"Day ends: {end_of_day}")
Sekarang, bangun sesuatu yang keren dengan ini!
Ingin platform Terintegrasi, All-in-One untuk Tim Pengembang Anda bekerja sama dengan produktivitas maksimum?
Apidog memenuhi semua kebutuhan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!