Python中的time模块与datetime模块用法总结


Posted in Python onJune 30, 2016

time模块
time模块是包含各方面对时间操作的函数. 尽管这些常常有效但不是所有方法在任意平台中有效. time用struct_time表示时间

import time

# time.struct_time(tm_year=2015, tm_mon=4, tm_mday=24, 
          tm_hour=14, tm_min=17, tm_sec=26, 
          tm_wday=4, tm_yday=114, tm_isdst=0)
# 2015
print time.localtime()
print time.localtime().tm_year

函数

  • time.time(): 返回一个时间戳
  • time.asctime([t]): 转换gmtime()和localtime()返回的元组或struct_time为string.
  • time.clock(): 在第一次调用的时候, 返回程序运行的时间. 第二次之后返回与之前的间隔.
  • time.ctime([secs]): 将时间戳转换为时间字符串, 如没有提供则返回当前的时间字符串,并与asctime(localtime())一样.
  • time.gmtime([secs]): 将时间戳转化为, UTC 时区的struct_time.
  • time.localtime([secs]): 类似gmtime()但会把他转换成本地时区.
  • time.mktime(t): struct_time 转化为时间戳.
  • time.sleep(secs): 线程推迟指定时间, 以秒为单位.
  • time.strftime(format[,t]): 根据参数转换一个sturc_time或元组为字符串.
  • time.strptime(string[, format]): 与strftime相反,返回一个struct_time.
import time

# Fri Apr 24 06:39:34 2015
print time.asctime(time.gmtime())

# 0.0
# None
# 1.01136392961 因计算机而异
print time.clock()
print time.sleep(1)
print time.clock()

# Fri Apr 24 14:42:07 2015
print time.ctime()

# 2015-04-24
print time.strftime('%Y-%m-%d', time.localtime())
# 1429857836.0
print time.mktime(time.localtime())

time模块中常用的格式化字符串

  • %y 两位数的年份 00 ~ 99.
  • %Y 四位数的年份 0000 ~ 9999
  • %m 月份 01 ~ 12.
  • %d day 01 ~ 31.
  • %H 时 00 ~ 23.
  • %I 时 01 ~ 12.
  • %M 分 00 ~ 59.
  • %S 秒 00 ~ 61.

datetime模块
datetime模块提供对于日期和时间进行简单或复杂的操作. datetime 模块提供了一下的可用类型(Available Types).

datetime.MINYEAR 和 datetime.MAXYEAR 模块常量表示datetime接受的范围

  • class datetime.date: 一个理想化的日期, 提供year, month, day属性
  • class datetime.time: 一个理想化的时间, 提供hour, minute, second, microsecond, tzinfo.
  • class datetime.datetime: 日期和时间的组合.提供year, month, day, hour, minute, second, microsecond, tzinfo.
  • class datetime.timedelta: 表达两个date,time和datetime持续时间内的微妙差异.
  • class datetime.tzinfo: 时间对象的抽象基类.
from datetime import timedelta, datetime

a = datetime.now()
b = timedelta(days=7)

# 7 days, 0:00:00
# 2015-04-14 16:02:39.189000
print b
print a - b

下面说具体说一下类和类的方法

date类

一个date对象代表理想化的日期.

class datetime.date(year, month, day)
    # All arguments are required. Arguments may be ints or longs.
    # 所有参数都是必须的. 参数可能是 int 或 long.
    MINYEAR <= year <= MAXYEAR
    1<= month <= 12
    1<= day <= number of days in the given month and year.(随着月份和年份)

如果参数脱离给的范围会抛出, valueError.

1.类方法 >`date.today()`:返回当前的本地日期, 这等价于 `date.fromtimestamp(time.time())`.
Return the current local date. This is equvalent to `date.fromtimestamp(time.time())`.

from datetime import date

  # print 2015-04-21
  print date.today()

2.date.fromtimestamp(timestamp):根据提供的时间戳返回local date. 时间戳常用于对时间类型的存储.

import time
from datetime import date

# 1429587111.21
# 2015-04-21
print time.time()
print date.fromtimestamp(time.time())

3.类方法date.fromordinal(ordinal):根据提供的Gregorian日历返回date.(不做描述)

类属性

  • date.min: 返回 date(MINYEAR, 1, 1).
  • date.max: 返回 date(MAXYEAR, 12, 31).
  • date.year: 返回 年, MINYEAR和MAXYEAR之间
  • date.month: 返回 月, 1到12月之间
  • date.day: 返回 1到 n 之间.
d = date(2014, 4, 21)
# 2014 4 21
print d.year, d.month, d.day

实例方法

  • date.replace(year, month, day):返回一个相同值的data对象, 除了这些参数给关键字指定新的值.
  • date.timetuple(): 返回一个time.struct_time对象.
  • date.toordinal(): 返回一个Gregoian Calendar对象.
  • date.weekday(): 返回day of the week. 星期一为0,星期日为6.
  • date.isoweekday(): 返回day of the week. 星期一为1,星期日为7.
  • date.isocalendar(): 返回一个三元组, (ISO year, ISO week number, ISO weekday).
  • date.isoformat(): 返回 一个'YYYY-MM-DD'的字符串格式.
  • date.ctime(): 返回一个字符串日期, d.ctime() 等同于 time.ctime(time.mktime(d.timetuple())).
  • date.strftime(format): 返回一个字符串日期, 格式自定义.
d = date(2015, 4, 21)

# 2015-04-21
# 2015-04-21
# 2015-04-22
print d
print d.replace()
print d.replace(day=22)

# time.struct_time(tm_year=2015, tm_mon=4, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=111, tm_isdst=-1)
print d.timetuple()

# print 1
# print 2
print d.weekday()
print d.isoweekday()

# print 2015-04-21
print d.isoformat()

# print 21/04/2015
print d.strftime('%d/%m/%y')

datetime 类

datetime 对象是一个单一的对象, 包含所有date和time对象的信息.

class datetime.datetime(year, month, day[, hour
                    [, minute
                    [, second
                    [, microsecond
                    [, tzinfo]]]]])
  # The year, month and day arguments are required.
  MINYEAR <= year <= MAXYEAR
  1 <= month <= 12
  1 <= day <= n
  0 <= hour < 24
  0 <= minute < 60
  0 <= second < 60
  0 <= microsecond < 10**6

类方法

  • datetime.today(): 返回当前本地datetime.随着 tzinfo None. 这个等同于datetime.fromtimestamp(time.time()).
  • datetime.now([tz]): 返回当前本地日期和时间, 如果可选参数tz为None或没有详细说明,这个方法会像today().
  • datetime.utcnow(): 返回当前的UTC日期和时间, 如果tzinfo None ,那么与now()类似.
  • datetime.fromtimestamp(timestamp[, tz]): 根据时间戳返回本地的日期和时间.tz指定时区.
  • datetime.utcfromtimestamp(timestamp): 根据时间戳返回 UTC datetime.
  • datetime.fromordinal(ordinal): 根据Gregorian ordinal 返回datetime.
  • datetime.combine(date, time): 根据date和time返回一个新的datetime.
  • datetime.strptime(date_string, format): 根据date_string和format返回一个datetime.
from datetime import datetime

# 2015-04-21 14:07:39.262000
print datetime.today()

# 2015-04-21 14:08:20.362000
print datetime.now()

# 1429596607.06
# 2015-04-21 14:10:07.061000
t = time.time() 
print t
print datetime.fromtimestamp(t)

from datetime import datetime, date, time

a = date(2015, 4, 21)
b = time(14, 13, 34)

# 2015-04-21 14:13:34
print datetime.combine(a, b)

实例方法

  • datetime.date(): 返回相同年月日的date对象.
  • datetime.time(): 返回相同时分秒微秒的time对象.
  • datetime.replace(kw): kw in [year, month, day, hour, minute, second, microsecond, tzinfo], 与date类似.

其他方法可查看官方文档…

from datetime import datetime, date, time

td = date(2015, 4, 21)
n = time(14, 28, 30)

# 2099-04-21 14:30:42.103000
print datetime.now(0.replace(year=2099)

类属性

  • datetime.min: datetime(MINYEAR, 1, 1).
  • datetime.max: datetime(MAXYEAR, 12, 31, 23, 59, 59, 999999).

实例属性(read-only)

  • datetime.year: 1 至 9999
  • datetime.month: 1 至 12
  • datetime.day: 1 至 n
  • datetime.hour: In range(24). 0 至 23
  • datetime.minute: In range(60).
  • datetime.second: In range(60).
  • datetime.microsecond: In range(1000000).

time类

time 代表本地(一天内)时间.

class datetime.time([hour
          [, minute
          [, second 
          [, microsecond
          [, tzinfo]]]]])
  # All arguments are optional.
  # 所有参数都是可选的.
  0 <= hour < 24
  0 <= minute < 60
  0 <= second < 60
  0 <= microsesond < 10**6

time类就是对时间的一些操作,其功能类似与datetime.其实date和time就是对datetime中日期和时间的操作.

Python 相关文章推荐
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
Jan 23 Python
Python threading多线程编程实例
Sep 18 Python
Python捕捉和模拟鼠标事件的方法
Jun 03 Python
python中ASCII码字符与int之间的转换方法
Jul 09 Python
tensorflow 打印内存中的变量方法
Jul 30 Python
用Python实现读写锁的示例代码
Nov 05 Python
django 简单实现登录验证给你
Nov 06 Python
python实现根据给定坐标点生成多边形mask的例子
Feb 18 Python
Python 面向对象部分知识点小结
Mar 09 Python
Django配置Bootstrap, js实现过程详解
Oct 13 Python
Pycharm Plugins加载失败问题解决方案
Nov 28 Python
如何使用Python提取Chrome浏览器保存的密码
Jun 09 Python
详解Swift中属性的声明与作用
Jun 30 #Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
Jun 30 #Python
Python的Flask框架中的Jinja2模板引擎学习教程
Jun 30 #Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
Jun 30 #Python
Python的Tornado框架实现图片上传及图片大小修改功能
Jun 30 #Python
举例讲解Python中metaclass元类的创建与使用
Jun 30 #Python
在Python中定义和使用抽象类的方法
Jun 30 #Python
You might like
php strstr查找字符串中是否包含某些字符的查找函数
2010/06/03 PHP
需要注意的几个PHP漏洞小结
2012/02/05 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
JS验证邮件地址格式方法小结
2015/12/01 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
浅谈Vue SPA 首屏加载优化实践
2017/12/15 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
python爬虫常用的模块分析
2014/08/29 Python
python多线程编程中的join函数使用心得
2014/09/02 Python
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
彻底搞懂Python字符编码
2018/01/23 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
python已协程方式处理任务实现过程
2019/12/27 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
HTML5通用接口详解
2016/06/12 HTML / CSS
历史学专业个人的自我评价
2013/10/13 职场文书
商务英语毕业生自荐信范文
2013/11/08 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
房屋租房协议书范本
2014/12/04 职场文书
教师个人事迹材料
2014/12/17 职场文书
会计求职简历自我评价
2015/03/10 职场文书