函数编程

模块

Time模块:

为了编写制定可保险的代码,大家把众多函数分组,分别放置差别的文件里,这样,各个文件包括的代码就相对很少,超级多编制程序语言都使用这种组织代码的措施。在Python中,一个.py文件就叫做叁个模块(module)。

  Time时间在python中有三种格式:时间戳、格式化时间、struct_time(元祖格局卡塔尔国,大家来看下三种格式具体表现方式。

选择模块好处:

  时间戳:142112412431(秒卡塔尔国,一九六七年11月1日算起,1969年十五月1日是Unix诞生的日子。

1、升高可维护性

  格式化时间:2017-09-09 18:00:00。

2、可重用

  struct_time:(tm_year=2017, tm_mon=9, tm_mday=9, tm_hour=13,
tm_min=41, tm_sec=20, tm_wday=5, tm_yday=252, tm_isdst=0)

3、幸免函数名和变量冲突

  我们因而help(time卡塔尔l来查阅time模块的函数

模块分类

1.time()

模块分为两种:

time.time(卡塔尔函数输出结果为时间戳,单位为秒。

  • 停放典型模块(又称规范库)。试行help(‘modules’State of Qatar查看全体Python自带模块列表
  • 其三方开源模块。可由此pip install 模块名 ,安装
  • 自定义安装

2.sleep()

相持导入

time.sleep(State of Qatar函数使代码延迟运营,单位秒。

 

3.gmtime()

恐怕有人拜谒到那个错

time.gmtime(卡塔尔(قطر‎函数将参数转变为struct_time,括号中参数填写时间戳,该函数将时间戳转化为UTC时区元祖。倘若括号中参数为空,结果输出为最近UTC时间。

 

import time
time.gmtime()
print(‘-------------------------------------------------------------------------------------------------------------------’)
time.gmtime(123123124)
输出结果:
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=10, tm_hour=13, tm_min=49, tm_sec=50, tm_wday=6, tm_yday=253, tm_isdst=0)   #当前UTC时间
-------------------------------------------------------------------------------------------------------------------
time.struct_time(tm_year=1973, tm_mon=11, tm_mday=26, tm_hour=0, tm_min=52, tm_sec=4, tm_wday=0, tm_yday=330, tm_isdst=0)  #时间戳转化struct_time元祖
ValueError: attempted relative import beyond top-level package

大家观看开掘struct_time是八个带有9个要素的元祖,若是我们必要获得个中专断多个因素,大家能够利用以下措施。

 

import time
x=time.gmtime()
print('year:%s'%(x.tm_year))
print('mon:%s'%(x.tm_mon))
输出结果:
year:2017
mon:9

事实上那四个错误的来由毕竟是相仿的:在关系到周旋导入时,package所对应的文本夹必得科学的被python解释器视作package,并不是日常文书夹。不然由于不被看作package,无法利用package之间的嵌套关系落到实处python中包的相对导入。

4.localtime()

 

与gmtime(卡塔尔国相仿,localtime(卡塔尔国括号中不能带参数,localtime(卡塔尔国输出当前Computer所在时区的struct_time元祖。

文件夹被python解释器视作package供给满足几个标准:

5.mktime()

 

time.mktime()函数将struct_time元祖转变为时间戳。

  1. 文件夹中必需有__init__.py文件,该公文可感到空,但必得存在该文件。
  2. 不能作为顶层模块来推行该文件夹中的py文件(即无法一碗水端平主函数的进口)。
import time
x=time.localtime()
x
time.mktime(x) #struct_time转化为时间戳
time.time()  
输出结果
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=10, tm_hour=22, tm_min=4, tm_sec=56, tm_wday=6, tm_yday=253, tm_isdst=0)
1505052296.0
1505052309.3117964

 

6.strftime()

为此这一个主题素材的消释办法就是,既然你在views.py里实行了针锋相投导入,那就不要把views.py充任入口程序,能够透过上一级的manage.py调用views.py

time.strftime(卡塔尔(قطر‎函数语法:strftime(format[, tuple])

 

常用的format:     %Y  Year with century as a decimal
number.           年
              %m  Month as a decimal number [01,12].        
      月
              %d  Day of the month as a decimal number
[01,31].    日
              %H  Hour (24-hour clock) as a decimal number
[00,23].  小时
              %M  Minute as a decimal number
[00,59].        分钟
              %S  Second as a decimal number
[00,61].        秒

.
├── __init__.py
├── crm
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── models.py
│   ├── tests.py
│   ├── views.py  #from ..proj import settings , ..返回上一级目录后和入口程序manage.py在同一个目录了,所以报错。。
├── manage.py  #from crm import views , 入口程序manage.py所在目录是根目录
└── proj
    ├── __init__.py
    ├── settings.py #from .import urls  
    ├── urls.py
    └── wsgi.py
#事实证明还是不行,报错
ValueError: attempted relative import beyond top-level package
import time
x=time.localtime()
time.strftime('%Y-%m-%d,%H:%M:%S',x)
输出结果:
'2017-09-10,22:14:05'

风度翩翩、Python中表示时间的三种艺术:

出口结果为格式话的字符串,函数中format格式大家得以私下定义,第一个函数时间格式%Y-%m-%d,%H:%M:%S,第1个函数时间格式%m-%d,%Y %H:%M:%S

  1. 时间戳
  2. 格式化的年月字符串
  3. 元祖(struct_time)共9个成分。由于Python的time模块达成重要调用C库,所以各类平台不一样。 
time.strftime('%m-%d,%Y  %H:%M:%S',x)
输出结果:
'09-10,2017  22:14:05'

二、多少个概念

 7.strptime

UTC(时间和睦时)亦即Green威治天文时间。世界标准时期。

time.strptime(卡塔尔国函数输入参数字符串和格式化字符,输出struct_time元组。

时间戳(timestamp)的方式

import time
time.strptime('2017-09-11,12:12:12','%Y-%m-%d,%H:%M:%S')
输出结果:
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=11, tm_hour=12, tm_min=12, tm_sec=12, tm_wday=0, tm_yday=254, tm_isdst=-1)

元祖方式:

strptime(State of Qatar函数在动用时需注意的是 ‘2017-09-11,12:12:12’和’%Y-%m-%d,%H:%M:%S’参数要各个对应,举例‘2017-09-11’要对应日期格式‘%Y-%m-%d’,个中的‘-’符号也要对应,同理,时间也要相应。

time & datetime模块

8.asctime

  • time.time(卡塔尔国显示1967年到现行反革命系统时间的秒数

    time.time() /3600 /24/365
    48.19778262615837

  • time.localtime([secs]):将贰个时刻戳转换为方今时区的struct_time。secs参数暗中认可是日前岁月。

    time.localtime()
    time.struct_time(tm_year=2018, tm_mon=3, tm_mday=2, tm_hour=12, tm_min=36, tm_sec=4, tm_wday=4, tm_yday=61, tm_isdst=0)
    a = time.localtime()
    a.tm_year
    2018

    用来拼接

    ‘%s-%s-%s’ %(a.tm_year,a.tm_mon,a.tm_mday)

time.asctime()

‘2018-3-2’

把叁个意味时间的元组也许struct_time代表为这种样式:‘Sun Jun 20 23:21:05 1993’。若无参数,将会将time.localtime(卡塔尔(قطر‎作为参数字传送入。

发表评论

电子邮件地址不会被公开。 必填项已用*标注