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函数帮助查询小工具
Mar 13 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
python爬虫爬取某站上海租房图片
Feb 04 Python
使用python3+xlrd解析Excel的实例
May 04 Python
Pycharm 操作Django Model的简单运用方法
May 23 Python
Python使用matplotlib实现基础绘图功能示例
Jul 03 Python
对pandas处理json数据的方法详解
Feb 08 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
Jun 26 Python
Python函数中的可变长参数详解
Sep 12 Python
python中加背景音乐如何操作
Jul 19 Python
2021年最新用于图像处理的Python库总结
Jun 15 Python
python创建字典及相关管理操作
Apr 13 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
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
php生成mysql的数据字典
2016/07/07 PHP
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
Javascript实现检测客户端类型代码封包
2015/12/03 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
js中获取时间new Date()的全面介绍
2016/06/20 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
Python选课系统开发程序
2016/09/02 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
python日志模块logbook使用方法
2019/09/19 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
Python版中国省市经纬度
2020/02/11 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
技术股份合作协议书
2014/10/05 职场文书
滞留工资返还协议书
2014/10/19 职场文书
银行求职信模板
2015/03/20 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书