当前位置: 首页 > news >正文

python之时间 datetime、date、time、timedelta、dateutil

在 Python 中,处理日期和时间的常用库是 datetime。此外,还有一些第三方库如 pytzdateutil 可以帮助处理时区和日期解析。

1. 使用 datetime 模块

导入模块
from datetime import datetime, date, time, timedelta
获取当前日期和时间
now = datetime.now()
print("Current date and time:", now)
创建日期和时间对象
# 创建日期对象
d = date(2023, 10, 1)
print("Date:", d)# 创建时间对象
t = time(14, 30, 45)
print("Time:", t)# 创建日期时间对象
dt = datetime(2023, 10, 1, 14, 30, 45)
print("Datetime:", dt)
日期和时间格式化
# 格式化日期时间对象为字符串
formatted_date = dt.strftime("%Y-%m-%d %H:%M:%S")
print("Formatted datetime:", formatted_date)# 解析字符串为日期时间对象
parsed_date = datetime.strptime("2023-10-01 14:30:45", "%Y-%m-%d %H:%M:%S")
print("Parsed datetime:", parsed_date)
日期和时间的加减
# 当前日期时间
now = datetime.now()# 加减时间
one_day = timedelta(days=1)
yesterday = now - one_day
tomorrow = now + one_dayprint("Yesterday:", yesterday)
print("Tomorrow:", tomorrow)

2. 使用 pytz 处理时区

pytz 是一个处理时区的第三方库。

安装 pytz
pip install pytz
使用 pytz
import pytz# 获取当前时间
now = datetime.now()# 设置时区
utc = pytz.utc
eastern = pytz.timezone('US/Eastern')# 将当前时间转换为 UTC
now_utc = now.astimezone(utc)
print("Current time in UTC:", now_utc)# 将当前时间转换为东部时间
now_eastern = now.astimezone(eastern)
print("Current time in Eastern Time:", now_eastern)

3. 使用 dateutil 解析日期

dateutil 是一个强大的日期解析库。

安装 dateutil
pip install python-dateutil
使用 dateutil
from dateutil import parser# 解析日期字符串
date_str = "2023-10-01 14:30:45"
parsed_date = parser.parse(date_str)
print("Parsed datetime:", parsed_date)

4. 其他常见操作

获取日期的各个部分
now = datetime.now()
print("Year:", now.year)
print("Month:", now.month)
print("Day:", now.day)
print("Hour:", now.hour)
print("Minute:", now.minute)
print("Second:", now.second)
日期比较
date1 = datetime(2023, 10, 1)
date2 = datetime(2023, 10, 2)if date1 < date2:print("date1 is earlier than date2")
elif date1 > date2:print("date1 is later than date2")
else:print("date1 is the same as date2")
日期差异
date1 = datetime(2023, 10, 1)
date2 = datetime(2023, 10, 2)difference = date2 - date1
print("Difference in days:", difference.days)
http://www.lryc.cn/news/427020.html

相关文章:

  • 【机器学习第11章——特征选择与稀疏学习】
  • LeetCode-day43-3137. K 周期字符串需要的最少操作次数
  • 基于springboot的智能家居系统
  • 【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(七)
  • C:每日一练:单身狗(2.0版本)
  • 打破接口壁垒:适配器模式让系统无缝对接
  • U-Boot 命令使用
  • 谷歌的高级指令有哪些
  • Redis操作--RedisTemplate(一)介绍
  • GitLab环境搭建
  • Socket编程TCP 基础
  • JAVA中的Iterator与ListIterator
  • 高校疫情防控web系统pf
  • 复现nnUNet2并跑通自定义数据
  • Educational Codeforces Round 169 (Rated for Div. 2)(ABCDE)
  • 成为Python砖家(2): str 最常用的8大方法
  • 深入理解JVM运行时数据区(内存布局 )5大部分 | 异常讨论
  • JAVA根据表名获取Oracle表结构信息
  • 网络性能优化
  • [C++String]接口解读,深拷贝和浅拷贝,string的模拟实现
  • 理性看待、正确理解 AI 中的 Scaling “laws”
  • 【OCR 学习笔记】二值化——全局阈值方法
  • Java - IDEA开发
  • Oracle(62)什么是内存优化表(In-Memory Table)?
  • #window家庭版安装hyper-v#
  • 【云原生】Pass容器研发基础——汇总篇
  • 【Py/Java/C++三种语言详解】LeetCode743、网络延迟时间【单源最短路问题Djikstra算法】
  • 交替输出
  • JS(三)——更改html内数据
  • CSS小玩意儿:文字适配背景