time&datetime的功能介绍

1. time模块

1. 时间的分类

1. 时间戳:以秒为单位的整数
2. 时间字符格式化:常见的年月日时分秒
3. 时间元祖格式:9大元素,每个元素对应时间的年与日时分秒周天夏令时

2. time中的变量

  1. timezone

    返回当前时区时间与UTC时区时间相差的时间戳,没有夏令时的情况下。

    方法:time.timezone
    返回值:int
    例如:print(time.timezone)
    >>> -28800
    #由于中国属于东八区,比UTC早8个小时,拿UTC-中国时区就等于-8,因此上述结果是负值。
  2. altzone

    返回当前时区时间与UTC时区时间相差的时间戳,在有夏令时的情况下。

    方法:time.altzone
    返回值:int
    例如:print(time.altzone)
    >>> -32400
    #因为有夏令时的情况下,时间提前一个小时,因此现在的8点,实际上是9点,因此上述的结果是相差9个小时。
  3. daylight

    判断当前时区是否实行夏令时,有实行则返回1,否则返回0

    方法:time.daylight
    返回值:int(0 or 1)
    例如:print(time.daylight)
    >>> 0
    #由于中国未实行夏令时,因此返回值为0.
  4. tzname

    把标准时区UTC和实行夏令时的时区作为元祖的两个元素返回

    方法:time.tzname
    返回值:tuple

3. time中的方法

  1. time

    以浮点类型返回当前时间的时间戳

    方法:time.time()
    返回值:float
    例如:print(time.time())
    >>> 1506229765.1344674
    #拿当前的时间减去1970年1月1日0时0分0秒得到的秒数。
  2. clock

    以浮点类型返回CPU启动的时间戳

    方法:time.clock()
    返回值:float
    例如:print(time.clock())
    >>> 9.770343197960344e-07
    #由于CPU启动时间小于一秒,因此上述返回值为负的科学计数法。
  3. sleep

    沉睡指定秒数

    方法:time.sleep(num)
    返回值:None
    例如:print(time.sleep(1))
    >>> None
    #该方法为执行过程方法,因此没有返回结果,程序等待一秒结束。
  4. gmtime

    把时间戳转换为时间元祖格式,以UTC时区进行计算

    方法:time.gmtime(seconds)
    返回值:time.struct_time
    例如:print(time.gmtime(666666))
    >>> time.struct_time(tm_year=1970, tm_mon=1, tm_mday=8, tm_hour=17, tm_min=11, tm_sec=6, tm_wday=3, tm_yday=8, tm_isdst=0)
    #返回的结果是以1970年1月1日算起始点,加上上述的指定秒数得出的时间元祖格式。
  5. localtime

    把本地时间戳转换为时间元祖格式,以本地时区进行计算

    方法:time.localtime([seconds])
    返回值:time.struct_time
    例如:print(time.localtime(666666))
    >>> time.struct_time(tm_year=1970, tm_mon=1, tm_mday=9, tm_hour=1, tm_min=11, tm_sec=6, tm_wday=4, tm_yday=9, tm_isdst=0)
    #可以指定时间戳,默认本地当前时间。
  6. asctime

    把时间元祖格式转换为时间字符串格式

    方法:time.asctime([time.struct_time])
    返回值:str
    例如:print(time.asctime())
    >>> Sun Sep 24 13:36:00 2017
    #传入的参数一定需要是时间元祖格式,默认不指定时,为当前本地时间。
  7. ctime

    把时间戳格式转换为时间字符串格式

    方法:time.ctime([num])
    返回值:str
    例如:print(time.ctime(666666))
    >>> Fri Jan 9 01:11:06 1970
    #传入的参数需要是时间戳即float or int类型,默认不指定时,为当前本地时间。
  8. mktime

    把时间元祖格式转换为时间戳格式

    方法:time.mktime(tuple)
    返回值:float
    例如:time.mktime(time.localtime())
    >>> 1506232321.0
    #实际中一般很少书写时间元祖格式,该方法在传入时不能直接传入时间元祖格式,但可以传入元祖即时间元祖格式去掉关键字的元祖。
  9. strptime

    把时间字符串按照对应的格式化进行转换为时间元祖格式

    方法:time.strptime(str,format)
    返回值:time.struct_time
    例如:print(time.strptime('2017-9-24','%Y-%m-%d'))
    >>> time.struct_time(tm_year=2017, tm_mon=9, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=267, tm_isdst=-1)
    #该方法与strptime方法的作用相反。
  10. strftime

    把时间元祖格式按照相应的格式化转换为时间字符串格式

    方法:time.strftime(format,[tuple])
    返回值:str
    例如:print(time.strftime('%Y-%m-%d'))
    >>> 2017-09-24
    #需要指定时间元祖,如果不指定时,默认以当期本地时间进行计算。

时间格式对应表如下:

标识符    标识符代表的意思
%Y 表示年份
%m 表示月份,取值范围[01,12]
%d 表示日,取值范围[01,31]
%H 表示小时,取值范围[00,23]
%M 表示分钟,取值范围[00,59]
%S 表示秒,取值范围[00,61]
%z 表示时区,取值范围[-12,+12]
%a 用英文表示周几,简称,取值范围[Sun,Sat]
%b 用英文表示月份,简称,取值范围[Jan,Dec]
%A 用英文表示周几,全称,取值范围[Sunday,Saturday]
%B 用英文表示月份,全称,取值范围[January,December]
%c 直接表示时间格式等于%a %b %d %H:%M:%S %Y的总和
%I 表示当前时间是12小时制还是24小时制,取值范围[01,02]
%p 表示当前时间是上午还是下午,该表示方法只有24小时制才可以用。

注:从上述对应表中可以看出,用于表示12小时制中的小时'h'并不存在,因此在python中一般只用于处理24小时制。

2. datetime模块

该模块中主要有以下几个类:

  1. date

    理想化的日期对象,有year,month,day三个属性

  2. time

    理想化的时间对象,不考虑闰秒即(秒取值范围为[00,59]),有hour,minute,second,microsecond,tzinfo五个属性

  3. datetime

    datetime.date和datetime.time的组合

  4. timedelta

    表示两个datetime.date,datetime.time或datetime.datetime直接的差

  5. tzinfo

    表示时区信息

2. datetime.date

  1. fromtimestamp

    把时间戳转换为字符串格式的日期,去除时间等其他信息,只保留年月日

    方法:datetime.date.fromtimestamp(num)
    返回值:datetime.date
    例如:print(datetime.date.fromtimestamp(233333333))
    >>> 1977-05-24
    #只保留年月日

3. datetime.datetime

  1. astimezone

    转换为新时区的当时时间

  2. combine

    把日期和时间合并

    例如:print(datetime.datetime.combine(datetime.date(207,9,25),datetime.time(16,30)))
    >>> datetime.datetime(207, 9, 25, 16, 30)
  3. now

    获取当天日期

    方法:datetime.datetime.now()
    返回值:datetime.datetime
    例如:print(datetime.datetime.now())
    >>> datetime.datetime(2017, 9, 24, 15, 23, 44, 389430)
    #获取当天的时间

    配合timedelta类一起使用:

    获取当天后第N天的时间

    方法:datetime.datetime.now() + datetime.timedelta(days=num)
    返回值:datetime.datetime
    例如:print(datetime.datetime.now() + datetime.timedelta(5))
    >>> 2017-09-29 15:49:01.371196
    #获取当天后第五天的时间,当然也可以获取当天前第N天的时间,传入的数字为负整数即可。对应参数days默认可以不填写。

    获取当天N个小时之前的时间

    方法:datetime.datetime.now() + datetime.timedelta(hours=num)
    返回值:datetime.datetime
    例如:print(datetime.datetime.now() + datetime.timedelta(hours=-5))
    >>> 2017-09-24 10:48:32.525547
    #获取5个小时之前当天的时间,以此类推,years,months,minutes,seconds,mircroseconds等的使用。

    当然修改上述日期的方法也可以不使用timedelta类,可以使用datetime.datetime.now().replace方法,具体如下:

    方法:datetime.datetime.now().replace(year,month...)
    返回值:datetime.datetime
    例如:print(datetime.datetime.now().replace(year=2018))
    >>> 2018-09-24 15:57:33.762503
    #需要注意的是,该方法使用的参数与timedelta类使用的参数是不一样的,一个加's',一个没有加's'。

4. timedelta

该类的对象:

  1. days(天数)
  2. microseconds(微秒数)
  3. seconds(秒数)
  4. hours(小时)
  5. minutes(分钟数)

该类一般配合datetime类一起使用,因此详情请见上述类的介绍。

Python中模块之time&datetime的功能介绍的更多相关文章

  1. Python中模块json与pickle的功能介绍

    json & pickle & shelve 1. json的序列化与反序列化 json的使用需要导入该模块,一般使用import json即可. json的序列化 方法1:json. ...

  2. Python中模块之os的功能介绍

    Python中模块之os的功能介绍 1. os的变量 path 模块路径 方法:os.path 返回值:module 例如:print(os.path) >>> <module ...

  3. 查看python中模块的所有方法

    查看python中模块的所有方法     安装的python模块,现将查看方法总结如下 一.CMD命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交 ...

  4. python常用模块之time&datetime模块

    python常用模块之time&datetime模块 在平常的代码中,我们经常要与时间打交道.在python中,与时间处理有关的模块就包括:time和datetime,下面分别来介绍: 在开始 ...

  5. Python常用模块sys,os,time,random功能与用法,新手备学。

    这篇文章主要介绍了Python常用模块sys,os,time,random功能与用法,结合实例形式分析了Python模块sys,os,time,random功能.原理.相关模块函数.使用技巧与操作注意 ...

  6. [python]关于在python中模块导入问题追加总结

    [背景] 最近在写程序时,我使用的eclipse编辑器运行都没有问题,然后部署到自动化环境上却偏偏报找不到相应模块问题,现在对该问题在之前的贴子上追加总结 原帖子:[python]关于python中模 ...

  7. [笔记]Python中模块互相调用的例子

    python中模块互相调用容易出错,经常是在本地路径下工作正常,切换到其他路径来调用,就各种模块找不到了. 解决方法是通过__file__定位当前文件的真实路径,再通过sys.path.append( ...

  8. 【转】Python中的赋值、浅拷贝、深拷贝介绍

    这篇文章主要介绍了Python中的赋值.浅拷贝.深拷贝介绍,Python中也分为简单赋值.浅拷贝.深拷贝这几种"拷贝"方式,需要的朋友可以参考下   和很多语言一样,Python中 ...

  9. python学习第九讲,python中的数据类型,字符串的使用与介绍

    目录 python学习第九讲,python中的数据类型,字符串的使用与介绍 一丶字符串 1.字符串的定义 2.字符串的常见操作 3.字符串操作 len count index操作 4.判断空白字符,判 ...

随机推荐

  1. 在windows环境下安装redis和phpredis的扩展

    在windows环境下安装redis和phpredis的扩展 1.首先配置php: 需要在windows的集成环境中找到php的扩展文件夹,ext,然后在网上寻找自己的php对应的.dll文件 比如说 ...

  2. C#之Socket通信

    0.虽然之前在项目中也有用过Socket,但始终不是自己搭建的,所以对Server,Clinet端以及心跳,断线重连总没有很深入的理解,现在自己搭建了一遍加深一下理解. 服务端使用WPF界面,客户端使 ...

  3. 深度学习之 GAN 进行 mnist 图片的生成

    深度学习之 GAN 进行 mnist 图片的生成 mport numpy as np import os import codecs import torch from PIL import Imag ...

  4. PHP常用函数集合

    PHP常用函数总结 数学函数 1.abs(): 求绝对值 $abs = abs(-4.2); //4.2 数字绝对值数字 2.ceil(): 进一法取整 echo ceil(9.999); // 10 ...

  5. Spring Security 入门(1-8)缓存EhCache

  6. python 面向对象进阶之内置方法

    一 isinstance(obj,cls)和issubclass(sub,super) 1.1,isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(obj ...

  7. 记java应用linux服务单个CPU使用率100%分析

    之前在做项目的过程中,项目完成后在linux服务器上做性能测试,当服务跑起来的时候发现cpu使用率很奇怪,java应用把单个cpu跑满了,其他cpu利用率0%. 刚开始遇到这问题的时候我第一时间反应使 ...

  8. django中图片的上传和显示

    上传图片实际上是 把图片存在服务器的硬盘中,将图片存储的路径存在数据库中. 1 首先要配置文件上传的路径: 1.1 建立静态文件目录 在项目根目录下 新建一个 static文件夹,下面再建立一个med ...

  9. 深度学习中Xavier初始化

    "Xavier"初始化方法是一种很有效的神经网络初始化方法,方法来源于2010年的一篇论文<Understanding the difficulty of training ...

  10. selenium用法详解

    selenium用法详解 selenium主要是用来做自动化测试,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题. 模拟浏览器进行网页加载,当requests,urllib无法正常获取 ...