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

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其实大同小异,只是有个别方法不同

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unshift() 方法将一个或多个元素添加到数组的开头,并返回新数组的长度

var arr [1, 2];arr.unshift(0); //result of call is 3, the new array length //arr is [0, 1, 2]arr.unshift(-2, -1); // 5 //arr is [-2, -1, 0, 1, 2]arr.unshift( [-3] ); //arr is [[-3], -2, -1, 0, 1, 2]语法 arr.unshift(element1, ..., elementN)参数列表 elemen…

acctype mysql assoc_DedeCMS V5.3二次开发经验分享

DedeCMS V5.3二次开发经验分享写在前面,DedeCMS系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCMS支持自定义频道模型,用户自定义新…

markdown基础语法整理

标题级别(一共六级) (建议在#后加一个空格比较标准) 通过在文字下方添加“”和“-”,他们分别表示一级标题和二级标题。在文字开头加上 “#”,通过“#”数量表示几级标题。(共1~6级标题,级别越小字体越大&a…

mysql connector配置_mysql connector odbc配置注意事项

官方下载:http://dev.mysql.com/downloads/connector/odbc/有64位和32位版本,要根据自己的office版本是32还是64的安装1、版本匹配问题:[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配…

安卓源码下载

SetupSecurityPortingTuningCompatibilityReference转到源代码SetupGetting StartedDownloading and Building RequirementsEstablishing a Build EnvironmentDownloading the SourcePreparing to BuildCompiling with JackUsing Reference BoardsRunning BuildsBuilding Kerne…

mysql 创建查询 删除_MYSQL数据库查询删除创建企业基本知识

数据查询语言(DQL)从表中获取数据select where (位置) order by(排序) group by haveby查询用户:select user,host,password from mysql.user;select user,host,password from mysql.usser order by(排序) 参数 (如user)asc(升序)select user,host&#xff0…

mysql 端口time_wait_linux上大量tcp端口处于TIME_WAIT的问题

最近发现在连接监控数据库的时候偶尔会连不上,报错:Couldnt connect to host:3306/tcp: IO::Socket::INET: connect: Cannot assign requested address查看了一下发现系统中存在大量处于TIME_WAIT状态的tcp端口$netstat -n | awk /^tcp/ {S[$NF]} END {f…

mysql常用命令英文词汇_MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档

MySQL在高并发连接、数据库记录数较多的情况下,SELECT ... WHERE ... LIKE %...%的全文搜索方式不仅效率差,而且以通配符%和_开头作查询时,使用不到索引,需要全表扫描,对数据库的压力也很大。MySQL针对这一问题提供了一…

SDN第二次作业

1、为什么需要SDN?SDN特点? 需要SDN的原因主要是:随着网络规模的不断扩大,封闭的网络设备内置了过多的复杂协议,增加了运营商定制优化网络的难度,科研人员无法在真实环境中规模部署新协议.同时,互联网流量的快速增长(预计到2018年,全球流量将…

mysql数据库sysdate_MySql数据库知识点复习

文章目录1. MySql数据类型1.1 数值类型1.2 字符串类型1.3 日期类型2.表记录的操作2.1 字段约束2.2 drop、delete、truncate之间的区别?3. MySql常见的函数4. 外键和表关系4.1 外键介绍4.2 添加外键4.3 表关系4.4 关联查询、外连接查询1. MySql数据类型1.1 数值类型M…

python函数-基础知识

一、含义函数是程序内的“小程序”二、示例 #!/usr/bin/env python #coding:utf-8 def hello():print(Hello world!)print(Hello people!) hello() 以上内容,定义了一个叫 hello() 的函数,执行该函数。第一行是 def 语句,它定义了一个名为 he…

python task done_python queue task_done()问题

我对python多线程队列有问题。我有一个脚本,其中producer从输入队列获取元素,生成一些元素并将它们放入输出队列,consumer从输出队列获取元素并打印它们:import threadingimport Queueclass Producer(threading.Thread):def __ini…

dobbo 简单框架

转载于:https://www.cnblogs.com/huangjianping/p/7986881.html

python实现多人聊天udp_python—多任务版udp聊天机器人

将多任务(多线程)引入到udp聊天机器人,可以实现同时发送消息和接收消息1 import socket2 import threading345 def udp_send(udp_socket,ip,port):6 while true:7 try:8 # 获取发送的信息9 data input(请输入要发送的信息:)10 udp_socket.sendto(data.e…

kafka 集群的部署安装

这里我们罗列一下我们的环境 10.19.18.88 zk1 10.19.16.84 zk2 10.19.11.44 zk3这里公司需要接入kafka用于zipkin来定位调用链 kafka 的地址是http://kafka.apache.org/ zipkin 的地址是https://github.com/openzipkin/zipkin/tree/master/zipkin-server#environment-variables…

Ubuntu 16.04 设置MySQL远程访问权限

第一步:修改配置文件的端口绑定 打开的目录可能会根据MySQL的版本稍有不同,可以先尝试打开/etc/mysql/my.cnf这个配置文件,若该文件不存在或文件内容为空,则尝试下面的文件路径。 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 在下…

spring mysql整合_springboot mybatis mysql 整合

1、pom文件配置mysqlmysql-connector-javaruntimeorg.springframework.bootspring-boot-starter-testtestorg.mybatis.spring.bootmybatis-spring-boot-starter1.2.0org.springframework.bootspring-boot-starter-jdbc2、mybatis 数据库连接配置spring.datasource.driver-class…

Android 平台电容式触摸屏的驱动基本原理

Android 平台电容式触摸屏的驱动基本原理 Android 平台电容式触摸屏硬件基本原理 Linux 与 Android 的多点触摸协议 Linux输入子系统:事件的编码 转载于:https://www.cnblogs.com/LittleTiger/p/7992840.html

微信小程序怎么取mysql_微信小程序如何加载数据库真实数据?

微信小程序要加载网站数据库里面的真实数据,有一个硬性的要求,就是你的网站域名必须是https协议才行,要不然你第一步服务器域名配置你都通过不了,小编我也是前不久申请的https://www.100txy.com,具体申请步骤大家自行去…

mysql定时任务

1. 查看是否开启定时策略 show variables like %event_sche%; 若出现如下图,则此时是关闭状态 开启定时策略(重启无效) set global event_scheduler 1; 则需要在配置文件my.ini的设置(重启有效) [mysqld] event_schedulerON //这一行加入mysqld标签下 2. 创建存储过…