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删除nginx缓存文件示例(python文件操作)
Mar 26 Python
举例讲解Python中的Null模式与桥接模式编程
Feb 02 Python
python OpenCV学习笔记实现二维直方图
Feb 08 Python
python如何创建TCP服务端和客户端
Aug 26 Python
python实现转圈打印矩阵
Mar 02 Python
pytorch多GPU并行运算的实现
Sep 27 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
python 负数取模运算实例
Jun 03 Python
pyCharm 实现关闭代码检查
Jun 09 Python
Scrapy框架介绍之Puppeteer渲染的使用
Jun 19 Python
python操作ini类型配置文件的实例教程
Oct 30 Python
Python与C/C++的相互调用案例
Mar 04 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页码形式分页函数支持静态化地址及ajax分页
2014/03/28 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
javascript网页关键字高亮代码
2008/07/30 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
基于javascript实现判断移动终端浏览器版本信息
2014/12/09 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
jQuery文字横向滚动效果的实现代码
2016/05/31 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
javascript触发模拟鼠标点击事件
2019/06/26 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
python将文本中的空格替换为换行的方法
2018/03/19 Python
详解python 爬取12306验证码
2019/05/10 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
英国家用电器购物网站:Hughes
2018/02/23 全球购物
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
电脑专业个人求职信范文
2014/02/04 职场文书
园林系毕业生求职信
2014/06/23 职场文书
艾滋病宣传标语
2014/06/25 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
2015高考寄语集锦
2015/02/27 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
大学优秀学生主要事迹材料
2015/11/04 职场文书
九年级化学教学反思
2016/02/22 职场文书
MySQL锁机制
2021/04/05 MySQL
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers
Java实现注册登录跳转
2022/06/16 Java/Android