失业程序员复习python笔记——日期时间
Python有很多处理日期的方式,先看一个简单的例子:
from datetime import datetime
now = datetime.now()
print("当前日期时间:", now)
#输出
当前日期时间: 2025-04-30 15:57:56.821595
可以看到这个日期格式精确到毫秒,包含日期和时间。如果只需要当前日期,可以这样写
from datetime import date
today = date.today()
print("当前日期:", today)
#输出
当前日期: 2025-04-30
如果要改变一下日期格式,可以这样写
from datetime import datetime
now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print("格式化日期1:", formatted_date)
formatted_date = now.strftime("%Y/%m/%d %H:%M:%S")
print("格式化日期2:", formatted_date)
#输出
格式化日期1: 2025-04-30 16:14:55
格式化日期2: 2025/04/30 16:14:55
这里通过日期对象调用strftime函数,用于将日期时间转换为指定格式的字符串。
格式字符串 "%Y-%m-%d %H:%M:%S" 中各部分的含义:
%Y:4位数的年份(如 2023)
%m:2位数的月份(01 到 12)
%d:2位数的日(01 到 31)
%H:24小时制的小时(00 到 23)
%M:分钟(00 到 59)
%S:秒(00 到 59)
其他常用格式代码:
%a:缩写的星期名(如 Mon)
%A:完整的星期名(如 Monday)
%b:缩写的月份名(如 Jan)
%B:完整的月份名(如 January)
%I:12小时制的小时(01 到 12)
%p:AM 或 PM
最后再看一个年龄比较的例子:
from datetime import date
def calculate_age(birth_date):
today = date.today()
age = today.year - birth_date.year
# 检查生日是否已过
if (today.month, today.day) < (birth_date.month, birth_date.day):
age -= 1
return age
birthday = date(1990, 7, 15)
print("年龄:", calculate_age(birthday))
#输出
34
这个例子定义了一个计算年龄的函数,传入一个生日日期对象。然后计算跟当前日期对象的年份相差多少赋值给age变量。
if (today.month, today.day) < (birth_date.month, birth_date.day): 这句话是一个元组计算。
元组计算的规则如下:
l 首先比较元组的第一个元素
l 如果第一个元素相等,再比较第二个元素
l 以此类推,直到分出大小或所有元素都比较完毕
所以它的目的是计算生日是否到来,到来的话,就把年龄-1。