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文件和目录操作函数小结
Jul 11 Python
详解Python中的正则表达式的用法
Apr 09 Python
Django的数据模型访问多对多键值的方法
Jul 21 Python
Python中.py文件打包成exe可执行文件详解
Mar 22 Python
python基础练习之几个简单的游戏
Nov 10 Python
PyQt5每天必学之事件与信号
Apr 20 Python
Python实现的本地文件搜索功能示例【测试可用】
May 30 Python
pip命令无法使用的解决方法
Jun 12 Python
Python访问MongoDB,并且转换成Dataframe的方法
Oct 15 Python
python实现网站微信登录的示例代码
Sep 18 Python
Python使用configparser读取ini配置文件
May 25 Python
Python Mock模块原理及使用方法详解
Jul 07 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模板类代码
2008/09/07 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
javascript编程起步(第六课)
2007/02/27 Javascript
dess中一个简单的多路委托的实现
2010/07/20 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
Vue.js教程之axios与网络传输的学习实践
2017/04/29 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
node实现登录图片验证码的示例代码
2018/04/20 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
python实现随机密码字典生成器示例
2014/04/09 Python
简单介绍Python中的struct模块
2015/04/28 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
Python自动采集微信联系人的实现示例
2020/02/28 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
python主要用于哪些方向
2020/07/05 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
美国价格实惠的在线眼镜网站:Zeelool
2020/12/25 全球购物
一些.net面试题
2014/10/06 面试题
遗体告别仪式主持词
2014/03/20 职场文书
岗位说明书标准范本
2014/07/30 职场文书
药店促销活动策划方案
2014/08/24 职场文书
中秋节国旗下演讲稿
2014/09/05 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
运动会通讯稿50字
2015/07/20 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技