python3中关于日期和时间的标准库datetime和time,之前都是用的时候随用随查,今天系统的看一下用这两个库可以做些什么。

1、time标准库

#首先添加一个time对象,看一下该对象的属性和方法

>>> import time,datetime

>>> a = time

>>> type(a)

>>> dir(a)

['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'perf_counter', 'process_time', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname']

使用help(time)查看一下帮助文件,里面有对应方法的说明(英语好是多么重要,我还得翻译)

Variables:

timezone -- difference in seconds between UTC and local standard time

altzone -- difference in seconds between UTC and local DST time

daylight -- whether local time should reflect DST

tzname -- tuple of (standard time zone name, DST time zone name)

Functions:

time() -- return current time in seconds since the Epoch as a float 返回当前时间的时间戳格式(浮点型)

clock() -- return CPU time since process start as a float 返回进程启动以来的cpu时间(浮点型)

sleep() -- delay for a number of seconds given as a float 休眠时间

gmtime() -- convert seconds since Epoch to UTC tuple 将一个时间戳类型转化为time tuple,不加参数就是当前时间

localtime() -- convert seconds since Epoch to local time tuple 当前时间的time tuple

asctime() -- convert time tuple to string time tuple转化成str型

ctime() -- convert time in seconds to string 将秒数转化为str型(是这么理解么?)

mktime() -- convert local time tuple to seconds since Epoch 将time tuple转化为时间戳

strftime() -- convert time tuple to string according to format specification 将time tuple按格式转化为str型

strptime() -- parse string to time tuple according to format specification 将str型按格式转化为time tuple

tzset() -- change the local timezone 更改本地时间

上面4个参数基本不怎么用,主要就是下面这些方法会用到

>>> a.time()

1492154597.892713

>>> a.clock()

1.28294687766011e-06

>>> a.sleep(0.001)

>>> time.gmtime(a.time())

time.struct_time(tm_year=2017, tm_mon=4, tm_mday=14, tm_hour=7, tm_min=24, tm_sec=6, tm_wday=4, tm_yday=104, tm_isdst=0)

>>> time.localtime()

time.struct_time(tm_year=2017, tm_mon=4, tm_mday=14, tm_hour=15, tm_min=24, tm_sec=14, tm_wday=4, tm_yday=104, tm_isdst=0)

>>> time.asctime(time.localtime())

'Fri Apr 14 15:24:31 2017'

>>> time.ctime(time.time())

'Fri Apr 14 15:24:46 2017'

>>> time.mktime(time.localtime())

1492155003.0

再来看strptime和strftime,因为这个涉及到格式,所以要说一下time tuple中的格式

帮助文件中也对格式做了说明,不过帮助文档中并不全面,我在其他人的博客中找到了更全的

%a本地(locale)简化星期名称

%A本地完整星期名称

%b本地简化月份名称

%B本地完整月份名称

%c本地相应的日期和时间表示

%d一个月中的第几天(01 - 31)

%H一天中的第几个小时(24小时制,00 - 23)

%I第几个小时(12小时制,01 - 12)

%j一年中的第几天(001 - 366)

%m月份(01 - 12)

%M分钟数(00 - 59)

%p本地am或者pm的相应符

%S秒(01 - 61)

%U一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。

%w一个星期中的第几天(0 - 6,0是星期天)

%W和%U基本相同,不同的是%W以星期一为一个星期的开始。

%x本地相应日期

%X本地相应时间

%y去掉世纪的年份(00 - 99)

%Y完整的年份

%Z时区的名字(如果不存在为空字符)

%%‘%’字符

知道了格式,strptime和strftime的用法了

>>> time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())

'2017-04-14 15:50:10'

>>> time.strptime('2017-04-14 15:50:10','%Y-%m-%d %H:%M:%S')

time.struct_time(tm_year=2017, tm_mon=4, tm_mday=14, tm_hour=15, tm_min=50, tm_sec=10, tm_wday=4, tm_yday=104, tm_isdst=-1)

2、datetime标准库

>>> import datetime

>>> a = datetime

>>> dir(a)

['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']

>>> dir(a.date)

['__add__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rsub__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', 'ctime', 'day', 'fromordinal', 'fromtimestamp', 'isocalendar', 'isoformat', 'isoweekday', 'max', 'min', 'month', 'replace', 'resolution', 'strftime', 'timetuple', 'today', 'toordinal', 'weekday', 'year']

>>> dir(a.datetime)

['__add__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rsub__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', 'astimezone', 'combine', 'ctime', 'date', 'day', 'dst', 'fold', 'fromordinal', 'fromtimestamp', 'hour', 'isocalendar', 'isoformat', 'isoweekday', 'max', 'microsecond', 'min', 'minute', 'month', 'now', 'replace', 'resolution', 'second', 'strftime', 'strptime', 'time', 'timestamp', 'timetuple', 'timetz', 'today', 'toordinal', 'tzinfo', 'tzname', 'utcfromtimestamp', 'utcnow', 'utcoffset', 'utctimetuple', 'weekday', 'year']

>>> dir(a.time)

['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'dst', 'fold', 'hour', 'isoformat', 'max', 'microsecond', 'min', 'minute', 'replace', 'resolution', 'second', 'strftime', 'tzinfo', 'tzname', 'utcoffset']

其实主要就是用的者三个包,而且里面有很多方法都是重复的

>>> a = date(1988,4,29)

>>> a.ctime()

'Fri Apr 29 00:00:00 1988'

>>> a.day

29

>>> a.month

4

>>> a.year

1988

>>> a.toordinal()当前日期距离耶稣生日(- -!公元元年)的天数

725856

>>> b = a.replace(2017,4,14)返回一个新对象,替换原对象的时间(不改变原有对象的属性)

>>> b

datetime.date(2017, 4, 14)

>>> b.strftime('%Y!%m!%d')按格式将date格式转化为str

'2017!04!14'

>>> a.timetuple()将date转化为time tuple

time.struct_time(tm_year=1988, tm_mon=4, tm_mday=29, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=120, tm_isdst=-1

>>> date(1988, 4, 29).isocalendar()Return a 3-tuple containing ISO year, week number, and weekday.(不太理解)

(1988, 17, 5)

>>> (1988, 4, 29).isoformat()Return string in ISO 8601 format, YYYY-MM-DD

'1988-04-29'

>>> date(2017,4,14).isoweekday()返回日期的周数(mon==1,sun==7)

5

>>> date.fromordinal(1988)将一个int型天数转化为对应的年、月、日数信息

datetime.date(6, 6, 11)

>>> date.fromordinal(365)

datetime.date(1, 12, 31)

>>> date.fromordinal(366)

datetime.date(2, 1, 1)

>>> date.fromtimestamp(time.time())将一个时间戳格式转化为date格式

datetime.date(2017, 4, 14)

>>> date.max最大的日期数

datetime.date(9999, 12, 31)

>>> date.min最小的日期数

datetime.date(1, 1, 1)

>>> date.today()

datetime.date(2017, 4, 14)当前日期date格式

>>> date.resolution date的最小单位

datetime.timedelta(1)

time与datetime其实大同小异,只是有个别方法不同

time是python的标准库吗_python3关于date和time的标准库相关推荐

  1. Python 2.7 学习笔记 内置语句、函数、标准库

    使用任何开发语言进行软件开发,都离不开语言提供的内置库(或Api),甚至说内置库的强大及使用是否方便都会影响大家对开发语言的选择. python语言,一样提供了很多内置的功能,可供开发时使用.主要有如 ...

  2. 用python画小动物大全_python3用turtle库进行绘制小猪佩奇图案

    晚上闲着无事,深入学习这个turtle用法,就做了小猪佩奇图 附上代码: # coding: utf-8 #功能:绘画小猪佩奇 import turtle as t t.screensize(400, ...

  3. 对python的功能和扩展功能的认知_Python基础-基础认知和库了解

    很多人在想要尝试用Python做数据的时候,会拿起一些数据分析相关的教程直接学习,我也尝试过直接去研读相关书籍,但是会觉得很多东西混论吞枣,所以在此分享一些Python的基础,然后再过度到数据处理,数 ...

  4. python导入库关键词_怎么样导入RobotFramework 自定义关键字(库文件)

    标准库关键字在使用的过程中,简单的需求还是可以满足.但是遇到有些需求还是不好满足的,还是需要自己去编码,自定义库文件关键字. -----------------来自小马哥的故事 假设python的安装 ...

  5. python 3.8.0安卓_Python3.8.0(32/64位)官方正式版_Python下载-PC9软件园

    Python是众多的计算机编程语言的其中一种,是跨平台的计算机程序设计语言,可以使用面向对象的动态类型语言.这种语言最初设计的时候,是用于编写自动化脚本(shell)的,随着后期版本的不断更新和增加的 ...

  6. chatgpt赋能python:Python微信获取群聊信息:顶级互联的新标准

    Python 微信获取群聊信息:顶级互联的新标准 Python 作为一种开源编程语言,已成为解决各种工程问题的首选方式之一.Python 是一种直观,并且简单易懂的编程语言,同时也非常强大,能够完成各 ...

  7. python爬虫网络请求超时_6、web爬虫讲解2—urllib库爬虫—基础使用—超时设置—自动模拟http请求...

    利用python系统自带的urllib库写简单爬虫 urlopen()获取一个URL的html源码 read()读出html源码内容 decode("utf-8")将字节转化成字符 ...

  8. 如何用python和pip安装在txt文件中配置好版本的库包

    如何用python和pip安装在txt文件中配置好版本的库包 文章目录: 一.建立库包版本的txt配置文件 二.安装txt配置文件中的库包 有时候你自己用python实现一个项目,然后想把它在gith ...

  9. python有什么好玩的库_你知道Python很火!那你知道它有哪些好玩的库吗?

    原标题:你知道Python很火!那你知道它有哪些好玩的库吗? 本文来源:sun菜菜(今日头条作者) 原文链接:https://www.toutiao.com/a6498615748884169230/ ...

最新文章

  1. bootstrap datepicker Uncaught TypeError: Cannot call method 'split' of undefined问题
  2. 面试阿里,被一大总监全程质疑前公司
  3. 计算机图形学三大应用领域,计算机图形学作业
  4. Bootstrap组件1_字体图标
  5. flex平均分布换行后自动对齐
  6. 数据结构:(1)课程总览
  7. C语言高级输出及进阶
  8. JVM堆外内存的回收机制分析
  9. 初探内核之《Linux内核设计与实现》笔记下
  10. 由于域安全组嵌套导致SPS访问控制群组和用户配置文件搜索失败
  11. Nginx SSL 结合Tomcat 重定向URL变成HTTP的问题
  12. xy苹果助手未受信任_【iOS教程】不用电脑 安装苹果软件
  13. boost电路输出电流公式_BOOST电路参数计算公式
  14. 阿里云国际版Windows操作系统的ECS云服务器上搭建WordPress网站
  15. fclose_fclose –关闭流
  16. 前端SPA(single page web application单页面应用not水疗)
  17. 百练oj2816:红与黑
  18. 论文《Contrastive Learning for Sequential Recommendation》
  19. 《MLB美职棒大联盟》:MLB最佳阵容·MLB新年也要身体倍棒
  20. 九段刀客:js九宫格转盘抽奖实现原理

热门文章

  1. 安卓注册手机短信验证码验证的案例-02
  2. mc服务器右上角信号格,手机右上角的网络信号标识是什么意思?
  3. linux 添加path环境变量中,在Linux里设置环境变量PATH的方法是什?
  4. skywalking 源码解析——多线程变量传递 EnhancedInstance
  5. Android 视频通话
  6. Android 下载进度条, 自定义加载进度条,loading动画
  7. Oh-My-Zsh 中安装 NVM
  8. java同步读写,关于java:Collections中的synchronizedMap方法是否同步读写操作
  9. 问题 seata_架构设计 | 基于Seata中间件,微服务模式下事务管理
  10. ansible的错误