Python时间模块datetime、time、calendar的使用方法


Posted in Python onJanuary 13, 2016

本文简单总结了一下Python处理时间和日期方面的模块,主要就是datetime、time、calendar三个模块的使用,希望这篇文章对于学习Python的朋友们有所帮助。

首先就是模块的调用,很多IDE都已经安装好了很多Python经常使用到的模块,所以我们暂时不需要安装模块了。

import datetime
import time
import calendar

1.获取到此时的准确时间

# 获取此时的时间
print time.localtime()
//输出格式为:
time.struct_time(tm_year=2015, tm_mon=12, tm_mday=29, tm_hour=1, tm_min=10, tm_sec=25, tm_wday=1, tm_yday=363, tm_isdst=0)

2.获取当天的日期

# 获取当天的日期
 print datetime.datetime.now()
 print datetime.date.today()

3.获取昨天的日期

# 获取昨天的日期
def getYesterday():
 today = datetime.date.today()
 oneday = datetime.timedelta(days=1)
 yesterday = today - oneday
 print type(today)  # 查看获取到时间的类型
 print type(yesterday)
 return yesterday
yesterday = getYesterday()
print "昨天的时间:", yesterday

4.获取n天以前的日期
这个应该就不用给出代码了吧,稍微想想就可以得出结果了。

5.字符串转换为时间和日期

# 字符串转换为时间
def strTodatetime(datestr, format):
 return datetime.datetime.strptime(datestr, format)
print time.strftime("%Y-%m-%d", time.localtime())
print strTodatetime("2014-3-1","%Y-%m-%d")
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print strTodatetime("2005-2-16","%Y-%m-%d")-strTodatetime("2004-12-31","%Y-%m-%d")

输出结果:
2015-12-29
2014-03-01 00:00:00
2015-12-29 01:10:25
47 days, 0:00:00
6.获取日历相关信息

# 获取某个月的日历,返回字符串类型
cal = calendar.month(2015, 12)
print cal
calendar.setfirstweekday(calendar.SUNDAY) # 设置日历的第一天
cal = calendar.month(2015, 12)
print cal

# 获取一年的日历
cal = calendar.calendar(2015)
print cal
cal = calendar.HTMLCalendar(calendar.MONDAY)
print cal.formatmonth(2015, 12)

7.calendar模块还可以处理闰年的问题

# 判断是否闰年、两个年份之间闰年的个数
print calendar.isleap(2012)
print calendar.leapdays(2010, 2015)

针对Python时间模块datetime\time进行详细探讨。

转义符对应意义如下

  • %a 本地简化星期名称
  • %A 本地完整星期名称
  • %b 本地简化的月份名称
  • %B 本地完整的月份名称
  • %c 本地相应的日期表示和时间表示
  • %d 月内中的一天(0-31)
  • %H 24小时制小时数(0-23)
  • %I 12小时制小时数(01-12)
  • %j 年内的一天(001-366)
  • %m 月份(01-12)
  • %M 分钟数(00=59)
  • %p 本地A.M.或P.M.的等价符
  • %S 秒(00-59)
  • %U 一年中的星期数(00-53)星期天为星期的开始
  • %w 星期(0-6),星期天为星期的开始
  • %W 一年中的星期数(00-53)星期一为星期的开始
  • %x 本地相应的日期表示
  • %X 本地相应的时间表示
  • %y 两位数的年份表示(00-99)
  • %Y 四位数的年份表示(000-9999)
  • %Z 当前时区的名称
  • %% %号本身

代码:

import time 
import datetime 
 
 
#两日期相减 
 
d1 = datetime.datetime(2005, 2, 16) 
d2 = datetime.datetime(2004, 12, 31) 
print (d1 - d2).days


  
#运行时间: 
  

starttime = datetime.datetime.now() 
endtime = datetime.datetime.now() 
print (endtime - starttime).seconds
 
#计算当前时间向后10天的时间。 
# 如果是小时 days 换成 hours 
 
 
d1 = datetime.datetime.now() 
d3 = d1 datetime.timedelta(days =10) 
 
print str(d3) 
print d3.ctime()

time.ctime([sec])#把秒数转换成日期格式,如果不带参数,则显示当前的时间。
 
>>> import time
>>> time.ctime()
>>> "Wed Jun 14 15:02:50 2006"
>>> time.ctime(1138068452427683)
"Sat Dec 14 04:51:44 1901" 
>>> import time
>>> time.strftime("%Y-%m-%d %X",time.localtime())
"2011-03-15 20:42:12"
>>> time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
"2011-03-15 20:03:47"
DateTime模块
----------------------------
datetime 将日期转化为秒
>>> import datetime,time
>>> time.mktime(datetime.datetime(2009,1,1).timetuple())
1230739200.0
>>> cc=[2000,11,3,12,43,33] #Attributes: year, month, day, hour, minute, second
>>> time.mktime(datetime.datetime(cc[0],cc[1],cc[2],cc[3],cc[4],cc[5]).timetuple())
973226613.0
time.time()取得当前时间;
time.localtime()取得本地时间;
time.strftime()格式化日期;
time.strptime(timeString)把字符串转化为日期;

判断输入的日期是星期几
>>> datetime.datetime(2011,02,15).weekday()
1
>>> datetime.datetime(2011,02,15).weekday()
1
>>> datetime.datetime(2011,02,16).weekday()
2
>>> datetime.datetime(2011,02,17).weekday()
3
>>>
datetime模块获取当前时间
>>> datetime.datetime.utcnow()
datetime.datetime(2011, 3, 15, 13, 19, 32, 264194)
>>> datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S") 格式化
'2011-03-15 13:19:27'
>>>

以上就是关于Python时间模块的详细学习,希望对大家学习Python程序设计有所帮助。

Python 相关文章推荐
python fabric实现远程部署
Jan 05 Python
Python3.6使用tesseract-ocr的正确方法
Oct 17 Python
Python I/O与进程的详细讲解
Mar 08 Python
Python3基础教程之递归函数简单示例
Jun 07 Python
Django框架orM与自定义SQL语句混合事务控制操作
Jun 27 Python
Python实现图像的垂直投影示例
Jan 17 Python
Python random库使用方法及异常处理方案
Mar 02 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
Mar 19 Python
python3中for循环踩过的坑记录
Dec 14 Python
关于pytest结合csv模块实现csv格式的数据驱动问题
May 30 Python
python运行脚本文件的三种方法实例
Jun 25 Python
Python实现数据的序列化操作详解
Jul 07 Python
基于Python实现文件大小输出
Jan 11 #Python
详解Python发送邮件实例
Jan 10 #Python
python轻松查到删除自己的微信好友
Jan 10 #Python
如何处理Python3.4 使用pymssql 乱码问题
Jan 08 #Python
Python argv用法详解
Jan 08 #Python
详解Python爬虫的基本写法
Jan 08 #Python
黑科技 Python脚本帮你找出微信上删除你好友的人
Jan 07 #Python
You might like
Oracle Faq(Oracle的版本)
2006/10/09 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
php命令行写shell实例详解
2018/07/19 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
JS input 数字验证代码
2009/07/30 Javascript
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
[05:34]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY第二弹
2014/06/25 DOTA
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
建议书标准格式
2014/03/12 职场文书
品牌宣传方案
2014/03/21 职场文书
百日安全活动总结
2014/05/04 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
教师节横幅标语
2014/10/08 职场文书
贪污检举信范文
2015/03/02 职场文书
redis限流的实际应用
2021/04/24 Redis
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python
SQL基础的查询语句
2021/11/11 MySQL
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android