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输出当前目录下index.html文件路径的方法
Apr 28 Python
python实现微信跳一跳辅助工具步骤详解
Jan 04 Python
python中字符串的操作方法大全
Jun 03 Python
使用python进行拆分大文件的方法
Dec 10 Python
Python修改文件往指定行插入内容的实例
Jan 30 Python
Python中使用遍历在列表中添加字典遇到的坑
Feb 27 Python
python获取txt文件词向量过程详解
Jul 05 Python
Python二维码生成识别实例详解
Jul 16 Python
python pygame实现挡板弹球游戏
Nov 25 Python
Pycharm最新激活码2019(推荐)
Dec 31 Python
python实现的Iou与Giou代码
Jan 18 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 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与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
xml在joomla表单中的应用详解分享
2012/07/19 PHP
解析crontab php自动运行的方法
2013/06/24 PHP
php调用c接口无错版介绍
2014/03/11 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
FCK调用方法..
2006/12/21 Javascript
IE8 原生JSON支持
2009/04/13 Javascript
js 本地预览的简单实现方法
2014/02/18 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
vue.js的提示组件
2017/03/02 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
axios使用拦截器统一处理所有的http请求的方法
2018/11/02 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
[01:14:35]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第一局
2016/02/26 DOTA
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
Python网站验证码识别
2016/01/25 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
python将txt文件读取为字典的示例
2018/12/22 Python
python 发送json数据操作实例分析
2019/10/15 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
德国网上药房:Apotal
2017/04/04 全球购物
东芝官网商城:还原日式美学,打造美好生活
2018/12/27 全球购物
前台领班岗位职责
2013/12/04 职场文书
人力资源总监工作说明
2014/03/03 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
党的群众路线教育实践活动个人对照检查材料(校长)
2014/11/05 职场文书
浪漫的婚礼主持词
2015/06/30 职场文书