Cara Mendapatkan Awal dan Akhir Hari dalam Python

Lynn Mikami

Lynn Mikami

6 June 2025

Cara Mendapatkan Awal dan Akhir Hari dalam Python

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 alat Pengujian API hebat yang menghasilkan Dokumentasi API yang indah?

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!
button

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.