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 相关文章推荐
从CentOS安装完成到生成词云python的实例
Dec 01 Python
python自动发送邮件脚本
Jun 20 Python
浅谈flask源码之请求过程
Jul 26 Python
Python引用计数操作示例
Aug 23 Python
Django2.1.3 中间件使用详解
Nov 26 Python
python实现自动获取IP并发送到邮箱
Dec 26 Python
python贪吃蛇游戏代码
Apr 18 Python
Python面向对象程序设计示例小结
Jan 30 Python
python 梯度法求解函数极值的实例
Jul 10 Python
关于Python中定制类的比较运算实例
Dec 19 Python
keras获得某一层或者某层权重的输出实例
Jan 24 Python
Python基于QQ邮箱实现SSL发送
Apr 26 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利用cookie实现访问次数统计代码
2011/05/19 PHP
PHP中的生成XML文件的4种方法分享
2012/10/06 PHP
基于php设计模式中单例模式的应用分析
2013/05/15 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
JavaScript实现Sleep函数的代码
2007/03/04 Javascript
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
jquery实现的树形目录实例
2015/06/26 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
Python学习笔记(二)基础语法
2014/06/06 Python
Python下线程之间的共享和释放示例
2015/05/04 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
python super用法及原理详解
2020/01/20 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
浅析HTML5 Landmark
2020/09/11 HTML / CSS
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
京剧自荐信
2014/01/26 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫