time&datetime的功能介绍

1. time模块

1. 时间的分类

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

2. time中的变量

  1. timezone

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

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

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

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

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

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

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

    1. 方法:time.tzname
    2. 返回值:tuple

3. time中的方法

  1. time

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

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

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

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

    沉睡指定秒数

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

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

    1. 方法:time.gmtime(seconds)
    2. 返回值:time.struct_time
    3. 例如:print(time.gmtime(666666))
    4. >>> 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)
    5. #返回的结果是以1970年1月1日算起始点,加上上述的指定秒数得出的时间元祖格式。
  5. localtime

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

    1. 方法:time.localtime([seconds])
    2. 返回值:time.struct_time
    3. 例如:print(time.localtime(666666))
    4. >>> 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)
    5. #可以指定时间戳,默认本地当前时间。
  6. asctime

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

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

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

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

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

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

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

    1. 方法:time.strptime(str,format)
    2. 返回值:time.struct_time
    3. 例如:print(time.strptime('2017-9-24','%Y-%m-%d'))
    4. >>> 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)
    5. #该方法与strptime方法的作用相反。
  10. strftime

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

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

时间格式对应表如下:

  1. 标识符 标识符代表的意思
  2. %Y 表示年份
  3. %m 表示月份,取值范围[01,12]
  4. %d 表示日,取值范围[01,31]
  5. %H 表示小时,取值范围[00,23]
  6. %M 表示分钟,取值范围[00,59]
  7. %S 表示秒,取值范围[00,61]
  8. %z 表示时区,取值范围[-12,+12]
  9. %a 用英文表示周几,简称,取值范围[Sun,Sat]
  10. %b 用英文表示月份,简称,取值范围[Jan,Dec]
  11. %A 用英文表示周几,全称,取值范围[Sunday,Saturday]
  12. %B 用英文表示月份,全称,取值范围[January,December]
  13. %c 直接表示时间格式等于%a %b %d %H:%M:%S %Y的总和
  14. %I 表示当前时间是12小时制还是24小时制,取值范围[01,02]
  15. %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

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

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

3. datetime.datetime

  1. astimezone

    转换为新时区的当时时间

  2. combine

    把日期和时间合并

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

    获取当天日期

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

    配合timedelta类一起使用:

    获取当天后第N天的时间

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

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

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

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

    1. 方法:datetime.datetime.now().replace(year,month...)
    2. 返回值:datetime.datetime
    3. 例如:print(datetime.datetime.now().replace(year=2018))
    4. >>> 2018-09-24 15:57:33.762503
    5. #需要注意的是,该方法使用的参数与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. fabric.js和高级画板

    本文介绍fabric.js框架使用,以及使用fabricjs打造一个高级画板程序. 高级画板功能介绍 全局绘制颜色选择 护眼模式.网格模式切换 自由绘制 画箭头 画直线 画虚线 画圆/椭圆/矩形/直角 ...

  2. sql2008r2,以前好好可以用的,但装了vs2017后,连接不上了,服务也停了,结果手动也 启动不了, 无法加载或初始化请求的服务提供程

    日志: 2017-12-14 12:33:17.53 服务器 A self-generated certificate was successfully loaded for encryption.2 ...

  3. DDD实战进阶第一波(二):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架一)

    要实现软件设计.软件开发在一个统一的思想.统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束. 虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍 ...

  4. 用C#(.NET Core) 实现简单工厂和工厂方法模式

    本文源自深入浅出设计模式. 只不过我是使用C#/.NET Core实现的例子. 前言 当你看见new这个关键字的时候, 就应该想到它是具体的实现. 这就是一个具体的类, 为了更灵活, 我们应该使用的是 ...

  5. kubernetes入门(08)kubernetes单机版的安装和使用

    kubectl get - 类似于 docker ps ,查询资源列表 kubectl describe - 类似于 docker inspect ,获取资源的详细信息 kubectl logs - ...

  6. restful架构风格设计准则(六)版本管理

    读书笔记,原文链接:http://www.cnblogs.com/loveis715/p/4669091.html,感谢作者! 版本管理 在前面已经提到过,一个REST系统为资源所抽象出的URI实际上 ...

  7. 启动mongodb遇到的错:warning: 32-bit servers don't have journaling enabled by deflity

    执行修复:mongod --repair即可 正常关闭:killall mongod

  8. 记录java/javascript让浮点数显示两位小数的方法

    参考:http://www.jb51.net/article/46010.htm 另,如果只是要在页面层展示的时候,显示为两位小数,也可以直接改前端js代码. item.turnoverRate = ...

  9. Linux命令基础

    开启Linux操作系统,root用户登录GNOME图形界面,如下图: 切换到虚拟终端2,使用普通用户身份登录,查看系统提示符,如下图: 使用命令退出虚拟终端2上的登录用户,如下图: 切换到虚拟终端5, ...

  10. 框架学习笔记之Hibernate

    一.什么是Hibernate Hibernate框架是当今主流的持久层框架之一,该框架是基于JDBC的主流持久化框架,使用它之后能够大大简化程序DAO层的代码量,提高工作效率,因此受广大开发人员的喜爱 ...