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实现爬虫统计学校BBS男女比例之多线程爬虫(二)
Dec 31 Python
Python 编码处理-str与Unicode的区别
Sep 06 Python
python安装twisted的问题解析
Aug 21 Python
pycharm中成功运行图片的配置教程
Oct 28 Python
简单了解python字符串前面加r,u的含义
Dec 26 Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 Python
Python SMTP配置参数并发送邮件
Jun 16 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 Python
Python私有属性私有方法应用实例解析
Sep 15 Python
python的dict判断key是否存在的方法
Dec 09 Python
Jupyter notebook 更改文件打开的默认路径操作
May 21 Python
使用python创建股票的时间序列可视化分析
Mar 03 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中显示格式化的用户输入
2006/10/09 PHP
下载文件的点击数回填
2006/10/09 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
PHP循环结构实例讲解
2014/02/10 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
java解析json方法总结
2019/05/16 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
微信小程序 基础组件与导航组件详细介绍
2017/02/21 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
Python3基础之输入和输出实例分析
2014/08/18 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
Python实现判断并移除列表指定位置元素的方法
2018/04/13 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
艺术设计专业个人求职信
2013/09/21 职场文书
建筑安全生产目标责任书
2014/07/23 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
入学证明
2015/06/23 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis
详解Vue slot插槽
2021/11/20 Vue.js
Redis实现短信验证码登录的示例代码
2022/06/14 Redis