Python中使用datetime模块获取当前时间日期,通过datetime.now()获取当前时间,strftime()格式化输出,date()和time()分离日期与时间,结合pytz处理时区,用减法计算时间差,strptime()将字符串转为datetime对象,timestamp()获取时间戳。

获取当前时间和日期,Python 提供了多种方式,最常用的莫过于
datetime模块。它就像一个瑞士军刀,能满足你各种时间日期相关的需求。
使用
datetime模块获取当前时间日期
datetime模块提供了
datetime类,通过
datetime.now()方法,可以轻松获取当前的日期和时间。
import datetime now = datetime.datetime.now() print(now)
这段代码会直接输出当前的完整日期和时间,例如:
2024-10-27 10:30:00.123456。是不是很简单?
立即学习“Python免费学习笔记(深入)”;
如何格式化输出时间日期?
默认的输出格式可能不符合你的需求,比如你只想显示年月日,或者你想自定义时间的显示方式。这时,
strftime()方法就派上用场了。
import datetime
now = datetime.datetime.now()
formatted_date = now.strftime("%Y-%m-%d") # 年-月-日
formatted_time = now.strftime("%H:%M:%S") # 时:分:秒
print(f"当前日期:{formatted_date}")
print(f"当前时间:{formatted_time}")strftime()接受一个格式化字符串作为参数,你可以根据自己的需要,组合不同的格式化符号。常用的格式化符号包括:
%Y
: 四位数的年份%m
: 两位数的月份 (01-12)%d
: 两位数的日期 (01-31)%H
: 24 小时制的小时 (00-23)%m
: 分钟 (00-59)%S
: 秒 (00-59)
等等,还有很多其他的格式化符号,可以查阅 Python 官方文档。
如何只获取日期或时间部分?
有时候你只需要日期,或者只需要时间,不需要全部信息。
datetime对象提供了
date()和
time()方法,可以分别获取日期和时间部分。
import datetime
now = datetime.datetime.now()
today = now.date()
current_time = now.time()
print(f"今天的日期:{today}")
print(f"当前时间:{current_time}")这样,
today变量就只包含了日期信息,
current_time变量就只包含了时间信息。
如何处理时区问题?
如果你需要处理不同时区的时间,
pytz库会很有帮助。它提供了丰富的时区信息,可以方便地进行时区转换。
import datetime
import pytz
# 获取 UTC 时间
utc_now = datetime.datetime.now(pytz.utc)
print(f"UTC 时间:{utc_now}")
# 转换为北京时间
beijing_tz = pytz.timezone('Asia/Shanghai')
beijing_now = utc_now.astimezone(beijing_tz)
print(f"北京时间:{beijing_now}")首先,需要安装
pytz库:
pip install pytz。然后,指定要转换的时区,使用
astimezone()方法进行转换。
如何计算时间差?
datetime对象可以进行加减运算,计算时间差。例如,计算两个日期之间的天数差:
import datetime
date1 = datetime.date(2023, 1, 1)
date2 = datetime.date(2023, 1, 10)
delta = date2 - date1
print(f"两个日期相差:{delta.days} 天")delta对象包含了时间差的信息,可以通过
days属性获取天数差。类似地,还可以计算小时差、分钟差等等。
如何将字符串转换为
datetime对象?
有时候,你需要将字符串表示的时间日期转换为
datetime对象,以便进行后续的处理。
datetime.strptime()方法可以实现这个功能。
import datetime
date_string = "2023-01-01 12:00:00"
date_object = datetime.datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(f"转换后的 datetime 对象:{date_object}")strptime()方法接受两个参数:时间日期字符串和格式化字符串。格式化字符串必须与时间日期字符串的格式相匹配,才能正确地进行转换。
如何获取时间戳?
时间戳是指从 1970 年 1 月 1 日 00:00:00 UTC 到现在的秒数。
datetime对象可以通过
timestamp()方法转换为时间戳。
import datetime
now = datetime.datetime.now()
timestamp = now.timestamp()
print(f"当前时间戳:{timestamp}")反过来,也可以通过
datetime.fromtimestamp()方法将时间戳转换为
datetime对象。
总结一下,Python 提供了强大的
datetime模块,可以方便地获取、格式化、转换和计算时间日期。掌握这些基本用法,可以让你在处理时间日期相关的任务时更加得心应手。











