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中的Numpy入门教程
Apr 26 Python
Python3基础之基本运算符概述
Aug 13 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
May 15 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 Python
python脚本作为Windows服务启动代码详解
Feb 11 Python
Python使用Pickle库实现读写序列操作示例
Jun 15 Python
Flask框架信号用法实例分析
Jul 24 Python
Matplotlib使用Cursor实现UI定位的示例代码
Mar 12 Python
python TCP包注入方式
May 05 Python
Python无损压缩图片的示例代码
Aug 06 Python
几款好用的python工具库(小结)
Oct 20 Python
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
Mar 29 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
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
php后台如何避免用户直接进入方法实例
2013/10/15 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
JavaScript代码复用模式实例分析
2012/12/02 Javascript
玩转方法:call和apply
2014/05/08 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
12 款 JS 代码测试必备工具(翻译)
2016/12/13 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
如何编写jquery插件
2017/03/29 jQuery
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
Python编程之序列操作实例详解
2017/07/22 Python
django使用html模板减少代码代码解析
2017/12/12 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
python基于递归解决背包问题详解
2019/07/03 Python
Django  ORM 练习题及答案
2019/07/19 Python
Python多重继承之菱形继承的实例详解
2020/02/12 Python
Python如何在DataFrame增加数值
2020/02/14 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
HTML5样式控制示例代码
2013/11/27 HTML / CSS
幼儿园小班评语
2014/04/18 职场文书
奉献演讲稿范文
2014/05/21 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python
pycharm代码删除恢复的方法
2021/06/26 Python
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL
Python 文字识别
2022/05/11 Python