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中字典和JSON互转操作实例
Jan 19 Python
Python的Django框架中TEMPLATES项的设置教程
May 29 Python
详解Python各大聊天系统的屏蔽脏话功能原理
Dec 01 Python
python中logging库的使用总结
Oct 18 Python
在Django中输出matplotlib生成的图片方法
May 24 Python
numpy中loadtxt 的用法详解
Aug 03 Python
Python利用递归实现文件的复制方法
Oct 27 Python
在Pycharm中对代码进行注释和缩进的方法详解
Jan 20 Python
详解Django定时任务模块设计与实践
Jul 24 Python
python web框架 django wsgi原理解析
Aug 20 Python
python用TensorFlow做图像识别的实现
Apr 21 Python
浅谈keras.callbacks设置模型保存策略
Jun 18 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
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
浅谈ECMAScript6新特性之let、const
2017/08/02 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
2017/09/20 jQuery
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
微信小程序 组件的外部样式externalClasses使用详解
2019/09/06 Javascript
理解Python中的With语句
2015/02/02 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
Python常见字典内建函数用法示例
2018/05/14 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
Python中生成ndarray实例讲解
2021/02/22 Python
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
德国BA保镖药房中文网:Bodyguard Apotheke
2021/03/09 全球购物
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
总经理的岗位职责
2014/02/23 职场文书
项目合作意向书范本
2014/04/01 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
业务员岗位职责
2015/02/03 职场文书
运动员代表致辞
2015/07/29 职场文书
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers
MySQL创建管理子分区
2022/04/13 MySQL