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最基本的数据类型以及对元组的介绍
Apr 14 Python
python如何查看系统网络流量的信息
Sep 12 Python
python密码错误三次锁定(实例讲解)
Nov 14 Python
简单实现Python爬取网络图片
Apr 01 Python
python检测IP地址变化并触发事件
Dec 26 Python
python 对字典按照value进行排序的方法
May 09 Python
对python中UDP,socket的使用详解
Aug 22 Python
python 字典有序并写入json文件过程解析
Sep 30 Python
Python读取实时数据流示例
Dec 02 Python
利用python对mysql表做全局模糊搜索并分页实例
Jul 12 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
Sep 23 Python
浅析pandas随机排列与随机抽样
Jan 22 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
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
2006/10/09 PHP
一个典型的PHP分页实例代码分享
2011/07/28 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
Javascript 布尔型分析
2008/12/22 Javascript
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
javascript中的3种继承实现方法
2016/01/27 Javascript
javascript设计模式之中介者模式学习笔记
2017/02/15 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
JavaScript基于用户照片姓名生成海报
2020/05/29 Javascript
Python赋值语句后逗号的作用分析
2015/06/08 Python
Python2.x与Python3.x的区别
2016/01/14 Python
python difflib模块示例讲解
2017/09/13 Python
Python 多进程和数据传递的理解
2017/10/09 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
HTML5的新特性(1)
2016/03/03 HTML / CSS
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
九年级体育教学反思
2014/01/23 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
红高粱观后感
2015/06/10 职场文书
会议简报格式范文
2015/07/20 职场文书