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条件和循环的使用方法
Nov 01 Python
python实现simhash算法实例
Apr 25 Python
简单介绍Python中的struct模块
Apr 28 Python
Python写的一个定时重跑获取数据库数据
Dec 28 Python
python构建深度神经网络(DNN)
Mar 10 Python
Python实现中一次读取多个值的方法
Apr 22 Python
Flask核心机制之上下文源码剖析
Dec 25 Python
详解Python Qt的窗体开发的基本操作
Jul 14 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
Django3中的自定义用户模型实例详解
Aug 23 Python
如何使用Django Admin管理后台导入CSV
Nov 06 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来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
2016/10/18 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
[47:08]OG vs INfamous 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
Python学习笔记之lambda表达式用法详解
2019/08/08 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
HTML5离线应用与客户端存储的实现
2018/05/03 HTML / CSS
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
美国宠物美容和宠物用品购物网站:Cherrybrook
2018/12/07 全球购物
90后毕业生的求职信范文
2013/09/21 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
文明城市标语
2014/06/16 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书
pandas数值排序的实现实例
2021/07/25 Python