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内存管理分析
Apr 08 Python
Python中使用Beautiful Soup库的超详细教程
Apr 30 Python
Python调用命令行进度条的方法
May 05 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
Mar 13 Python
python日期时间转为字符串或者格式化输出的实例
May 29 Python
python中join()方法介绍
Oct 11 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
Aug 20 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 Python
Django模板标签{% for %}循环,获取制定条数据实例
May 14 Python
完美解决jupyter由于无法import新包的问题
May 26 Python
python安装及变量名介绍详解
Dec 12 Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 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 数组和字符串互相转换实现方法
2013/03/26 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
jQuery 使用手册(一)
2009/09/23 Javascript
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
javascript 应用小技巧方法汇总
2015/07/05 Javascript
Bootstrap插件全集
2016/07/18 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
关于使用axios的一些心得技巧分享
2017/07/02 Javascript
JavaScript中如何判断一个值的类型
2017/09/15 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
vue.js中$set与数组更新方法
2018/03/08 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
webpack4打包vue前端多页面项目
2018/09/17 Javascript
JS学习笔记之闭包小案例分析
2019/05/29 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
小程序click-scroll组件设计
2019/06/18 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
2019/07/25 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
Python实现DDos攻击实例详解
2019/02/02 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
自动化系在校本科生求职信
2013/10/23 职场文书
创建精神文明单位实施方案
2014/03/08 职场文书
大学生党员个人对照检查材料范文
2014/09/25 职场文书
党组织领导班子整改方案
2014/10/25 职场文书
幼儿体育课教学反思
2016/02/16 职场文书