博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day16——import、datetime获得时间、时间格式的相互转换
阅读量:5766 次
发布时间:2019-06-18

本文共 4426 字,大约阅读时间需要 14 分钟。

    在日常的开发工作中,我们要写很多的Python代码,如果都写在一个文件中,会导致代码特别难维护,为了拓展代码的可维护性,我们把函数写在不同的文件里,这样每个文件包含的文件就比较少,逻辑更加清楚。在Python中,我们创建的文件基本都是以.py结尾,那一个.py的文件就称之为模块。
    为了方便管理模块,Python中又引入了包(Packge)这个概念,每个包下面都有一个__init__.py文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码。因为__init__.py本身就是一个模块,举个例子:test目录下面有__init_py,app.py,bbb.py三个文件,
    a)import导入
    有时候一个文件或者一个包中已经出现了一个函数,我们在另一个Python代码中需要引入该文件或者该文件的某个函数,那怎么解决呢?Python给我们提供一个关键字import,下面我们来了解一下它的用法:
    1.如果是本地导入文件,直接使用:import filename
    2.如果导入的是一个包,该包下面必须是有__init__.py文件才可以导入,否则报错,只有有了__init__.py文件,Python解析器才会把这个目录当成包。
    常用的导入模块格式:
form xxx import xxx
import xxx
    在导入的时候,.py的后缀直接省略,如果是多级的包,或者想导入包里面的函数等,可以使用from进行导入,举个例子:
from aaa import bbb
import os
    解释:第一个例子是导入aaa包下面的bbb模块或者导入aaa文件下面的bbb类或者函数。
    第二个import是直接导入系统模块os模块。
 
#import 一般我们用作导入模块来用,常用的快捷键是 alt + Enter就可以直接导入模块
 
#from ... import ... 这个是从什么模块中导入什么,最终你可以导入的是一个函数,也可以是一个类,也可以是一个模块
#总结:就是一层一层的调用就可以了。
#注意:1.import后面导入的是什么,在调用的时候,就必须写什么,除非你用from进行导入    
       2.导入的时候不写后缀名字
 
datetime获得时间
    The distinction between naive and aware doesn't apply to timedelta objects
    Subclass relationships:
    object
        timedelta
        tzinfo
        time
        date
            datetime
        time
    在Python文档里,time是归类在Generic Operating System Services中,换句话说,它提供的功能是更加接近于操作系统层面的。通读文档可知,time模块是围绕着Unix Timestamp进行的。time模块基于不用于取时间,取时间推荐使用datetime模块
    Python开发过程中,我们经常会用到获取当前时间,根据当前时间生成一个和当天时间相关的文件,这样我们在后期看查找文件的时候就方便了很多,那Python又如何来获取当前时间呢?
1 from datetime import datetime2 now_time = datetime.now()3 a = now_time.strftime('%Y-%m-%d')4 print(now_time)5 print(a)6 print(type(now_time))

 

 
打印结果为:
解释:
    1.先导入datetime类
    2.通过datetime的now方法就获得当前所需要的时间
    3.datetime还是有好多方法的,可以获取year,month等,请通过dir()访求查看
    4.此时我们获得的now_time还是一个datetime类,所以我们需要用strftime方法转换成字符串,strftime的参数就是最终需要字符串的形式
    5.strftime需要便是时间的参数有很多,下面我们介绍一下最长用的一些参数:
    格式参数:
    %Y    :带世纪部分的十制年份
    %m   :十进制表示的月份
    %d    :十进制表示的每月的第几天
    %H    :24小时制的小时
    %M   :十进制表示的分钟数
    %s     :十进制的秒数
    %c     :标准时间。如:04/25/17 14:35:14    类似于这种形式
    这几个参数就是最常用到的我们用的时间
 
    此时还有一个问题,就是在我们开发过程中,经常要取昨天的时间,或者明天的时间,那又应该怎么办呢?
    例子:
1 from datetime import datetime,timedelta2 now_time = datetime.now()3 a = now_time.strftime('%c')4 print(now_time)5 print(a)6 b = now_time + timedelta(days =-1)7 print(b)

 

 
打印结果为:
解释:
Timedelta可以接收days和seconds两个参数,正数代表几天之前的,负数代表几天之前的,所以b代表的是一天之前的时候。
 
 
 
#time独有的用法:
1 import time 2   3 for i in xrange(1,4): 4     print (i) 5     time.sleep(0.1) 6   7 #datetime 8   9 from datetime import datetime, timedelta10  11 now_time = datetime.now()12 print(now_time)13 new_time = now_time.strftime('%Y-%m-%d %H:%M:%S')14 a = now_time.strftime('%c')15 print(new_time)16 print(a)

 

#now 获得当前的时候,strftime用来表示显示时间的格式
 
#如果我们要取昨天或者明天的日期,
 
1 print('#'*30)2 now_time = datetime.now()3 yesterday = now_time + timedelta(days =- 1)4 tomorrow = now_time + timedelta(days =- 1)5 tomorrow_1 = now_time + timedelta(days=-1)6 tomorrow = tomorrow_1.strftime('%Y-%m-%d')7 print(yesterday)8 print(tomorrow)

 

 
返回结果为:
 

 

时间格式的相互转换
    时间的三种存在方式:时间对象、时间字符串,时间戳
    (1)字符串转datetime:
1 from datetime import datetime,timedelta2 string = '2017-04-25 11:59:58'3 time1 = datetime.strptime(string,'%Y-%m-%d %H:%M:%S')4 print(time1)5 print(type(time1))

 

 
打印结果为:

 

    (2)datetime转字符串
1 from datetime import datetime,timedelta2 string = '2017-04-25 11:59:58'3 time1 = datetime.strptime(string,'%Y-%m-%d %H:%M:%S')4 print(time1)5 print(type(time1))6 time1_str = datetime.strftime(time1,'%Y-%m-%d %H:%M:%S')7 print(type(time1_str))8 print(time1_str)

 

 
打印结果为:
 

 

    (3)时间戳转时间对象:
1 from datetime import datetime,timedelta2 import time3 time1 = time.time()4 print(time1)5 time1_str = datetime.fromtimestamp(time1)6 print(time1_str)7 print(type(time1_str))

 

 
打印结果为:

 

解释:
    1.datetime模块是包装了time模块的,所以只需要了解datetime模块就可以
    2.time.time()是或者当前时间的时间戳,时间戳是指格林威时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
    3.datetime下面有个函数fromtimestamp(时间戳)会把时间戳自动转换成datetime类型 
 
1 from datetime import datetime 2 import time 3  4 now_time = datetime.now() 5 print(now_time) 6 print(type(now_time)) 7 print('###################time to str###################') 8 _time = now_time.strftime('%Y-%m-%d %H:%M:%S') 9 _time = datetime.strftime(now_time,'%Y-%m-%d %H:%M:%S')10 print(_time)11 print(type(_time))12 print('###################str to time###################')13 _d_time = datetime.strptime(_time,'%Y-%m-%d %H:%M:%S')14 print(_d_time)15 print(type(_d_time))16 17 18 19 print('###################时间戳stamp###################')20 #时间戳转换成时间对象21 _a = time.time()22 print(_a)23 _n_time = datetime.fromtimestamp(_a)24 print(_n_time)25 print(type(_n_time))

 

 
打印结果为:
 
 
 
 

转载于:https://www.cnblogs.com/yangjinbiao/p/7811614.html

你可能感兴趣的文章
UML类图中的六种关系
查看>>
探寻Interpolator源码,自定义插值器
查看>>
一致性哈希
查看>>
mysql(待整理)
查看>>
看雪论坛502,出现安全宝?
查看>>
使用PullToRefresh实现下拉刷新和上拉加载
查看>>
mysql
查看>>
2012年电信业八大发展趋势
查看>>
Web日志安全分析工具 v2.0发布
查看>>
JS重载
查看>>
python2和python3同安装在Windows上,切换问题
查看>>
php加速工具xcache的安装与使用(基于LNMP环境)
查看>>
android超链接
查看>>
redhat tomcat
查看>>
统计数据库大小
查看>>
IO流的学习--文件夹下文件的复制
查看>>
第十六章:脚本化HTTP
查看>>
EXCEL表中如何让数值变成万元或亿元
查看>>
Cisco PIX防火墙的安装流程
查看>>
配置系列:ssm中applicationContext-mybatis.xml的简单配置
查看>>