- 部分 I. Python 入门
- 第 1 章 Python 入门
- 第 2 章 Python Package Index (PyPI)
- 第 3 章 Python 模块
- 第 4 章 数据类型
- 第 5 章 数据结构
- 第 6 章 Class
- 第 7 章 Input/Output
- 第 8 章 Pipe
- 第 9 章 Library
- 9.2. 随机数
- 9.3. Python 多线程
- 9.13. syslog
- 9.5. Socket
- 9.6. subprocess
- 9.7. YAML
- 9.8. Daemon
- 9.9. python-memcached
- 9.10. Pyro - Pyro is short for PYthon Remote Objects
- 9.11. Python Imaging Library
- 9.12. getopt – Command line option parsing
- 9.14. python-subversion
- 9.15. SimpleHTTPServer
- 9.16. fuse-python.x86_64 : Python bindings for FUSE - filesystem in userspace
- 9.17. Network
- 9.18. Python-spdylay - Spdylay Python Extension Module
- 9.19. mechanize
- 9.20. Dominate
- 第 10 章 Frameworks
- 第 12 章 终端环境开发
- 部分 II. Python 数据分析
- 第 13 章 Crawler
- 第 14 章 Scrapy - Python web scraping and crawling framework
- 第 15 章 Pandas - Python Data Analysis Library
- 第 16 章 股票
- 第 17 章 数据可视化
- 部分 III. 人工智能 AI
- 第 18 章 OCR
- 第 19 章 语音处理
- 第 20 章 视频
- 第 21 章 人脸识别
- 第 22 章 自然语言处理
- 第 23 章 自动化运维
- 第 24 章 办公自动化
- 第 25 章 OpenCV
- 第 26 章 图形开发
- 第 27 章 3rdparty toolkit
- 第 29 章 实用代码
- 第 30 章 FAQ
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
4.5. 日期和时间
4.5. 日期和时间
4.5.1. 当前时间
from datetime import datetime print(datetime.today()) print(datetime.now()) print(datetime.now().date()) print(datetime.now().time())
2023-03-11 18:30:34.657155 2023-03-11 18:30:34.657176 2023-03-11 18:30:34.657182
today = datetime.today() yesterday = (today - timedelta(days=1)).date()
4.5.2. 生成时间
from datetime import date print(date(2002, 12, 31))
4.5.3. 日期格式化
from datetime import datetime datetime.today().strftime('%Y-%m-%d.%H:%M:%S') timepoint = time.strftime('%Y-%m-%d.%H:%M:%S',time.localtime(time.time()))
4.5.4. 字符串转日期
from datetime import datetime dt_str = '27/10/20 05:23:20' dt_obj = datetime.strptime(dt_str, '%d/%m/%y %H:%M:%S') print("The type of the date is now", type(dt_obj)) print("The date is", dt_obj)
4.5.5. 日期转字符串
from datetime import date print(date(2002, 12, 31).strftime('%Y-%m-%d'))
4.5.6. 日期运算
4.5.6.1. 天数差
from datetime import datetime begin='2023-02-01' end='2023-02-28' interval=datetime.strptime(end,'%Y-%m-%d').date() - datetime.strptime(begin,'%Y-%m-%d').date() print(interval.days)
4.5.6.2. 月/周 首尾计算
from datetime import timedelta,datetime now = datetime.now() # 获取昨天日期: yesterday = now - timedelta(days=1) # 获取明天日期: tomorrow = now + timedelta(days=1)
# 获取本周第一天和最后一天: this_week_start = now - timedelta(days=now.weekday()) this_week_end = now + timedelta(days=6-now.weekday()) # 获取上周第一天和最后一天: last_week_start = now - timedelta(days=now.weekday()+7) last_week_end = now - timedelta(days=now.weekday()+1) # 获取上月第一天和最后一天: last_month_end = this_month_start - timedelta(days=1) last_month_start = datetime.datetime(last_month_end.year, last_month_end.month, 1) # 获取本季第一天和最后一天: month = (now.month - 1) - (now.month - 1) % 3 + 1 this_quarter_start = datetime.datetime(now.year, month, 1) this_quarter_end = datetime.datetime(now.year, month, calendar.monthrange(now.year, now.month)[1]) # 获取上季第一天和最后一天: last_quarter_end = this_quarter_start - timedelta(days=1) last_quarter_start = datetime.datetime(last_quarter_end.year, last_quarter_end.month - 2, 1) # 获取本年第一天和最后一天: this_year_start = datetime.datetime(now.year, 1, 1) this_year_end = datetime.datetime(now.year + 1, 1, 1) - timedelta(days=1) # 获取去年第一天和最后一天: last_year_end = this_year_start - timedelta(days=1) last_year_start = datetime.datetime(last_year_end.year, 1, 1)
4.5.7. 日期范围计算
计算两个日期之间的月份
import calendar import datetime begin = "2017-11-15" end = "2018-04-23" def monthlist(begin, end): begin = datetime.datetime.strptime(begin, "%Y-%m-%d") end = datetime.datetime.strptime(end, "%Y-%m-%d") result = [] while True: if begin.month == 12: next = begin.replace(year=begin.year+1, month=1, day=1) else: next = begin.replace(month=begin.month+1, day=1) if next > end: break day = calendar.monthrange(begin.year, begin.month)[1] result.append((begin.strftime("%Y-%m-%d"), begin.replace(day=day).strftime("%Y-%m-%d"))) begin = next result.append((begin.strftime("%Y-%m-%d"), end.strftime("%Y-%m-%d"))) return result lists = monthlist(begin, end) print(lists) for (b, e) in lists: print(b, e)
4.5.8. 日期排序
import datetime list_time=["2018-05-01","2018-02-01","2018-07-10","2019-06-01"] list_time1=sorted(list_time,key=lambda date:datetime.datetime.strptime(date,"%Y-%m-%d").timestamp()) print('before', list_time) print('after', list_time1) print('before', list_time) print('min', min(list_time1), 'max', max(list_time1))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论