您的位置:首页 > 其它

import、time与datetime与时间格式转化

2017-11-10 09:09 344 查看
在日常的开发工作中,我们要写很多的python代码,如果都写在一个文件中,会导致代码特别难维护,为了拓展代码的可维护性,我们把函写在不同的文件里,这样每个文件包含的文件就比较少,逻辑更加清楚。在python中,我们创建的文件基本都是以.py结尾,那一个.py的文件就称之为模块。 

为了方便管理方便管理模块,python中又引了包(Package)这个概念。每个包下面都有一个init.py文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。init.py可以是空文件,也可以有Python代码,因为init.py本身就是一个模块,举个例子:test目录下面有init.py, aaa.py,bbb.py三个文件,如下图所示:

[root@localhost ~]# tree test 

test 

├── aaa.py 

├── bbb.py 

└── init.py

如果是本地导入文件,直接使用:import filename 

如果导入的是一个包,该包下面必须是有init.py文件才可以导入,否则报错,只有有了init.py文件,python解析器才会把这个目录当成是的包 

常用的导入模块常用的格式: 

form xxx import xxx 

import xxx 

在导入的时候,.py的后缀直接省略,如果是多级的包,或者想导入包里面的函数等,可以使用from进行导入,举个例子: 

在chao这个Package下面写一个简单的模块: 

def hello(): 

print (“hello word !”)

创建一个demo1来导入这个模块并使用 

from chao import test 

test.hello()

hello word ! 

直接导入系统模块: 

import os


time

#time模块基本不用与取时间,取时间推进
import time

for i in xrange(3):
print i
time.sleep(1)
1
2
3
4
5

输出结果会1秒打印一个数字直到打完 





2


datetime

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 类似于这种形式 

这几个参数就是最常用到的我们用的时间 

6,Timedelta可以接收days和seconds两个参数,正数代表几天之前的,负数代表几天之前的
实例:
from datetime import datetime, timedelta

now_time = datetime.now()
print (now_time)
#精确到秒的时间
new_time = now_time.strftime('%Y-%m-%d %H:%M:%S')
print (new_time)
#标准时间
aa = now_time.strftime('%c')
print (aa)
#表示昨天
yesterday = now_time + timedelta(days=-1)
print (yesterday)
#精确到昨天的秒
y = yesterday.strftime('%Y-%m-%d %H:%M:%S')
print (y)
#表示明天
tommorow = now_time + timedelta(days=+1)
print tommorow
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

2017-11-09 14:20:03.955000 

2017-11-09 14:20:03 

11/09/17 14:20:03

2017-11-08 14:20:03.955000 

2017-11-08 14:20:03 

2017-11-10 14:20:03.955000


时间格式转化

时间的三种存在方式:时间对象,时间字符串,时间戳
from datetime import datetime, timedelta
import time

#字符串转datetime
string = '2017-04-25 11:59:58'
time1 = datetime.strptime(string,'%Y-%m-%d %H:%M:%S')
print (time1)
print (type(time1))
#datetime转字符串
time1_str = datetime.strftime(time1, '%Y-%m-%d %H:%M:%S')
print(time1_str)
print(type(time1_str))
#时间戳转时间对象,这里用到的time模块是单独import time
new_time = time.time()
print (new_time)
now_time =datetime.fromtimestamp(new_time)
print (now_time)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

2017-04-25 11:59:58 

type ‘datetime.datetime’

2017-04-25 11:59:58 

type ‘str’

1510150491.54 

2017-11-08 22:14:51.539000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: