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 相关文章推荐
一个简单的python程序实例(通讯录)
Nov 29 Python
python使用pycharm环境调用opencv库
Feb 11 Python
Django跨域请求问题的解决方法示例
Jun 16 Python
Python字典对象实现原理详解
Jul 01 Python
Python操作qml对象过程详解
Sep 26 Python
使用django和vue进行数据交互的方法步骤
Nov 11 Python
Python库skimage绘制二值图像代码实例
Apr 10 Python
Python读取excel文件中带公式的值的实现
Apr 17 Python
Python中bisect的用法及示例详解
Jul 20 Python
Python实现手势识别
Oct 21 Python
Python操控mysql批量插入数据的实现方法
Oct 27 Python
python中的random模块和相关函数详解
Apr 22 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扩展ZF――Validate扩展
2008/01/10 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
2015/09/21 Javascript
javascript实现拖放效果
2015/12/16 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
node.js的事件机制
2017/02/08 Javascript
jQuery实现弹窗居中效果类似alert()
2017/02/27 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
Python中的jquery PyQuery库使用小结
2014/05/13 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
浅析Python函数式编程
2018/10/06 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
Audible英国:有声读物,30天免费试用
2019/10/16 全球购物
音乐教师个人工作总结
2015/02/06 职场文书
工作岗位职责范本
2015/02/15 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
人代会简报
2015/07/21 职场文书
开业典礼致辞
2015/07/29 职场文书
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android
海弦WR-800F
2022/04/05 无线电