Fundamentals 7 min read

Python datetime: 20 Common Date and Time Operations with Code Examples

This article presents twenty practical Python datetime examples covering current time retrieval, formatting, date arithmetic, leap year checks, timers, scheduling, calendar queries, timestamp conversions, and weekday calculations, each accompanied by clear code snippets for immediate use.

Test Development Learning Exchange
Test Development Learning Exchange
Test Development Learning Exchange
Python datetime: 20 Common Date and Time Operations with Code Examples

1. Get the current date and time:

from datetime import datetime
now = datetime.now()
print("当前时间:", now)

2. Format and print the current time:

formatted_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print("格式化后的当前时间:", formatted_time)

3. Calculate the difference in days between two dates:

from datetime import datetime
date1 = datetime(2025, 5, 1)
date2 = datetime(2025, 6, 1)
difference = (date2 - date1).days
print(f"{date1} 和 {date2} 之间相差 {difference} 天")

4. Convert a string to a datetime object:

from datetime import datetime
date_str = "2025-05-01"
date_obj = datetime.strptime(date_str, "%Y-%m-%d")
print("日期对象:", date_obj)

5. Convert a datetime object to a string:

from datetime import datetime
date_obj = datetime.now()
date_str = date_obj.strftime("%Y-%m-%d")
print("日期字符串:", date_str)

6. Get today's date:

from datetime import date
today = date.today()
print("今天的日期:", today)

7. Add one day to the current date:

from datetime import datetime, timedelta
now = datetime.now()
tomorrow = now + timedelta(days=1)
print("明天的日期:", tomorrow)

8. Subtract one hour from the current time:

from datetime import datetime, timedelta
an_hour_ago = datetime.now() - timedelta(hours=1)
print("一小时前的时间:", an_hour_ago)

9. Determine if a year is a leap year:

import calendar
year = 2024
if calendar.isleap(year):
print(f"{year} 是闰年")
else:
print(f"{year} 不是闰年")

10. Get the first and last day of the current month:

from datetime import datetime, timedelta
first_day = datetime.today().replace(day=1)
last_day = (first_day + timedelta(days=32)).replace(day=1) - timedelta(days=1)
print("本月第一天:", first_day.date())
print("本月最后一天:", last_day.date())

11. Create a simple countdown timer:

import time
def countdown(t):
while t:
mins, secs = divmod(t, 60)
timer = '{:02d}:{:02d}'.format(mins, secs)
print(timer, end="\r")
time.sleep(1)
t -= 1
countdown(5)
print("计时结束")

12. Schedule a task using the sched module:

import sched, time
scheduler = sched.scheduler(time.time, time.sleep)
def print_event(name):
print(f"事件: {name} 在 {time.time()} 执行")
print('开始:', time.time())
scheduler.enter(2, 1, print_event, ('事件1',))
scheduler.run()

13. Print the calendar for a specific month:

import calendar
year = 2025
month = 5
print(calendar.month(year, month))

14. Convert a timestamp to a datetime:

import time
from datetime import datetime
timestamp = time.time()
print("时间戳:", timestamp)
date_time = datetime.fromtimestamp(timestamp)
print("日期时间:", date_time)

15. Convert a datetime string to a timestamp:

from datetime import datetime
date_time_str = '2025-05-05 12:00:00'
date_time_obj = datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S')
timestamp = date_time_obj.timestamp()
print("时间戳:", timestamp)

16. Determine the weekday of a given date:

from datetime import datetime
date = datetime(2025, 5, 5)
print(date.strftime("%A"))  # 输出星期几

17. Calculate a date after adding a number of working days (excluding weekends):

from datetime import datetime, timedelta
def add_working_days(start_date, days):
current_date = start_date
added_days = 0
while added_days < days:
current_date += timedelta(days=1)
if current_date.weekday() < 5:  # 排除周末
added_days += 1
return current_date
start_date = datetime(2025, 5, 5)
print(add_working_days(start_date, 10))  # 10个工作日后的日期

18. Compute the number of weeks between two dates:

from datetime import datetime
date1 = datetime(2025, 5, 1)
date2 = datetime(2025, 6, 1)
weeks_difference = (date2 - date1).days // 7
print(f"{date1} 和 {date2} 之间相差 {weeks_difference} 周")

19. Get the Monday and Sunday of the current week:

from datetime import datetime, timedelta
today = datetime.today()
start_of_week = today - timedelta(days=today.weekday())
end_of_week = start_of_week + timedelta(days=6)
print("本周周一:", start_of_week.date())
print("本周周日:", end_of_week.date())

20. Introduce a simple delay using time.sleep() :

import time
print("开始")
time.sleep(2)  # 等待2秒
print("2秒后...")
PythonprogrammingDateTimetutorialdate-timetime manipulation
Test Development Learning Exchange
Written by

Test Development Learning Exchange

Test Development Learning Exchange

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.