Python Datetime模块和Calendar模块用法实例分析


Posted in Python onApril 15, 2019

本文实例讲述了Python Datetime模块和Calendar模块用法。分享给大家供大家参考,具体如下:

datetime模块

1.1 概述

datetime比time高级了不少,可以理解为datetime基于time进行了封装,提供了更多的实用的函数,datetime的接口更加的直观,更容易调用

1.2 模块中的类

datetime:同时有时间与日期
timedelta:表示时间间隔,即两个时间点的间隔:主要用于计算时间的跨度
tzinfo: 时区相关的信息
date : 只关注日期

2、获取系统当前时间

先导入模块:

import datetime
t1 = datetime.datetime.now()
print(t1)

输出:

2018-04-11 19:52:06.180339

3、获取指定时间

time2 = datetime.datetime(2018, 3, 28, 21, 59, 7, 95015)
print(time2)
print(type(time2))

输出:

2018-03-28 21:59:07.095015
<class 'datetime.datetime'>

4、将时间转为字符串

time1 = datetime.datetime.now()
time3 = time1.strftime("%Y-%m-%d")
print(time3)

输出:

2018-04-11

5、时间相减,返回一个时间间隔的对象

import datetime
import time
time1 = datetime.datetime.now()
time.sleep(3)
time2 = datetime.datetime.now()
time3 = time2 -time1
print(time1)
print(time2)
print(time3)
print(type(time3))
#间隔天数
print(time3.days)
# 间隔天数之外的时间转为秒
print(time3.seconds)

输出:

2018-04-11 20:06:11.439085
2018-04-11 20:06:14.440052
0:00:03.000967
<class 'datetime.timedelta'>
0
3

calendar模块

1、calendar模块有很广泛的方法用来处理年历和月历

导入模块

import calendar

2、calendar.month(year.month)

返回指定年月的日历【字符串类型】

print(calendar.month(2018,4))
print(type(calendar.month(2018,4)))

输出:

     April 2018
Mo Tu We Th Fr Sa Su
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

<class 'str'>

3、calendar.calendar(year)

返回指定年的日历【字符串类型】

4、calendar.firstweekday()

返回当前每周起始日期的设置

print(calendar.firstweekday())

输出:

0

5、calendar.isleap(year)

返回指定的年份是否为闰年,若是返回True,否则返回False

print(calendar.isleap(2016))

输出:

True

6、calendar.leapdays(year1,year2)

返回[year1,year2)之间闰年的总和。

print(calendar.leapdays(2000,2020))

输出:

5

7、calendar.monthrange(year,month)

返回一个元组(参数一,参数二)
参数一:当月的天数
参数二:当月第一天的日期码[0,6][周一,周日]

print(calendar.monthrange(2018,1))
print(calendar.monthrange(2018,2))
print(calendar.monthrange(2018,3))
print(calendar.monthrange(2018,4))

输出:

(0, 31)
(3, 28)
(3, 31)
(6, 30)

8、calendar.monthlendar(year,month)

返回指定月份以每一周为元素的一个二维列表。

print(calendar.monthcalendar(2018,4))

输出:

[[0, 0, 0, 0, 0, 0, 1], [2, 3, 4, 5, 6, 7, 8], [9, 10, 11, 12, 13, 14, 15], [16, 17, 18, 19, 20, 21, 22], [23, 24, 25, 26, 27, 28, 29], [30, 0, 0, 0, 0, 0, 0]]

9、calendar.weekday(year,month,day)

返回指定日期的日期码。

print(calendar.weekday(2018,4,1))

输出:

6

9、获取凌晨零点到23:59的时间

now = time.time()
midnight = now - (now % 86400) + time.timezone
pre_midnight = midnight - 86400
now_midnight = midnight - 1
start_time = datetime.datetime.strptime(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(pre_midnight)),
                  "%Y-%m-%d %H:%M:%S")
end_time = datetime.datetime.strptime(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(now_midnight)),
                 "%Y-%m-%d %H:%M:%S")

PS:这里再为大家推荐几款关于日期与天数计算的在线工具供大家使用:

在线日期/天数计算器:
http://tools.3water.com/jisuanqi/date_jisuanqi

在线万年历日历:
http://tools.3water.com/bianmin/wannianli

在线阴历/阳历转换工具:
http://tools.3water.com/bianmin/yinli2yangli

Unix时间戳(timestamp)转换工具:
http://tools.3water.com/code/unixtime

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python中的reduce内建函数使用方法指南
Aug 31 Python
Python求导数的方法
May 09 Python
python操作ssh实现服务器日志下载的方法
Jun 03 Python
全面了解python中的类,对象,方法,属性
Sep 11 Python
Python 自动刷博客浏览量实例代码
Jun 14 Python
Python lambda函数基本用法实例分析
Mar 16 Python
Django项目中包含多个应用时对url的配置方法
May 30 Python
Django 多环境配置详解
May 14 Python
简单介绍python封装的基本知识
Aug 10 Python
Python从文件中读取数据的方法步骤
Nov 18 Python
Python 正则模块详情
Nov 02 Python
python套接字socket通信
Apr 01 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
Apr 15 #Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 #Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
Apr 15 #Python
10招!看骨灰级Pythoner玩转Python的方法
Apr 15 #Python
Python后台开发Django会话控制的实现
Apr 15 #Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 #Python
提升Python程序性能的7个习惯
Apr 14 #Python
You might like
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
2011/09/13 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
JavaScript小技巧 2.5 则
2010/09/12 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
改变隐藏的input中value的值代码
2013/12/30 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
js实现图片无缝滚动
2015/12/23 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
使用 vue-i18n 切换中英文效果
2018/05/23 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
Python3搜索及替换文件中文本的方法
2015/05/22 Python
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
python实现人民币大写转换
2018/06/20 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
详解重置Django migration的常见方式
2019/02/15 Python
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
Django 框架模型操作入门教程
2019/11/05 Python
Django 自定义分页器的实现代码
2019/11/24 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
python 实现表情识别
2020/11/21 Python
Python的collections模块真的很好用
2021/03/01 Python
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
2015年办公室个人工作总结
2015/04/20 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS