datetime
模块在 Python 中非常实用,尤其是在处理日期和时间时。以下是 datetime
模块的一些常用方法:
pythonfrom datetime import datetime, timedelta, date, time
datetime.now()
date.today()
datetime.now().time()
pythonprint(datetime.now()) # 当前日期和时间
print(date.today()) # 当前日期
print(datetime.now().time()) # 当前时间
datetime(year, month, day, hour, minute, second)
date(year, month, day)
time(hour, minute, second)
pythondt = datetime(2024, 1, 12, 14, 15, 0)
d = date(2024, 1, 12)
t = time(14, 15, 0)
print(dt)
print(d)
print(t)
datetime.strptime(date_string, format)
datetime.strftime(format)
python# 字符串转日期
dt = datetime.strptime('2024-01-12 14:15', '%Y-%m-%d %H:%M')
# 日期转字符串
date_str = dt.strftime('%Y-%m-%d %H:%M')
print(dt)
print(date_str)
timedelta
可以对日期进行加减操作:python# 日期加减
today = date.today()
yesterday = today - timedelta(days=1)
tomorrow = today + timedelta(days=1)
print(yesterday, tomorrow)
datetime.year
datetime.month
datetime.day
datetime.hour
datetime.minute
datetime.second
pythonnow = datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)
可以使用运算符 ==
, !=
, <
, >
, <=
, >=
进行日期和时间的比较:
pythondate1 = datetime(2024, 1, 12)
date2 = datetime(2023, 12, 31)
print(date1 > date2) # True
weekday()
获取星期几(周一为 0,周日为 6)isoweekday()
获取星期几(周一为 1,周日为 7)pythontoday = date.today()
print(today.weekday()) # 0-6,0表示周一
print(today.isoweekday()) # 1-7,1表示周一
datetime.fromtimestamp(timestamp)
datetime.timestamp()
python# 时间戳转日期时间
timestamp = 1609459200 # 对应2021-01-01 00:00:00
dt = datetime.fromtimestamp(timestamp)
# 日期时间转时间戳
timestamp = datetime.now().timestamp()
print(dt)
print(timestamp)
timedelta
对象。pythondate1 = datetime(2024, 1, 12)
date2 = datetime(2023, 12, 31)
delta = date1 - date2
print(delta.days) # 差几天
要获取从 start_date
到 end_date
的所有月份,可以使用 datetime
模块循环生成每个月的日期。以下是一个示例代码:
pythonfrom datetime import datetime, timedelta
start_date = datetime.strptime('2017-09', '%Y-%m')
end_date = datetime.today()
# 创建一个列表保存月份
months = []
# 使用循环获取每个月份
current_date = start_date
while current_date <= end_date:
months.append(current_date.strftime('%Y%m'))
# 增加一个月
if current_date.month == 12:
current_date = current_date.replace(year=current_date.year + 1, month=1)
else:
current_date = current_date.replace(month=current_date.month + 1)
print(months)
start_date
开始,每次增加一个月,直到 end_date
。python['201709', '201710', '201711', ..., '202411']
本文作者:皓月归尘
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!