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发送伪造的arp请求
Jan 09 Python
python基础教程之基本内置数据类型介绍
Feb 20 Python
Python打印scrapy蜘蛛抓取树结构的方法
Apr 08 Python
Python加pyGame实现的简单拼图游戏实例
May 15 Python
常见python正则用法的简单实例
Jun 21 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
python 操作hive pyhs2方式
Dec 21 Python
pytorch 获取tensor维度信息示例
Jan 03 Python
根据tensor的名字获取变量的值方式
Jan 04 Python
windows下python安装pip方法详解
Feb 10 Python
Python urllib.request对象案例解析
May 11 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 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
咖啡与牛奶
2021/03/03 冲泡冲煮
谈谈PHP语法(3)
2006/10/09 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
jquery实现滑动图片自己测试的例子
2013/11/05 Javascript
让alert不出现弹窗的两种方法
2014/05/18 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
2015/08/28 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
Python如何快速实现分布式任务
2017/07/06 Python
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
商场中秋节广播稿
2014/01/17 职场文书
安全生产投入制度
2014/01/29 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
节约用水的口号
2014/06/20 职场文书
三好生演讲稿
2014/09/12 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js