time和datetime时间戳---python
参考网址,写的很棒:
http://www.open-open.com/lib/view/open1479363382807.html
个人封装好的函数,可以互相转换
class my_datetime(): """ Basic usage: a = datetime.datetime(2016, 9, 21, 13, 42, 8) b = "2016-11-15 15:32:12" c = u'2016-09-21 13:37:34' print type(c) d = 1474436826.0 e = 13710788676.0 ret = my_datetime() res = ret.become_datetime(e) print res print type(res) """ def __init__(self): # 缺少对utc时间的判断 pass def become_timestamp(self, dtdt): # 将时间类型转换成时间戳 if isinstance(dtdt, datetime.datetime): timestamp = time.mktime(dtdt.timetuple()) return timestamp elif isinstance(dtdt, str): if dtdt.split(" ")[1:]: a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S") timestamp = time.mktime(a_datetime.timetuple()) else: a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d") timestamp = time.mktime(a_datetime.timetuple()) return timestamp elif isinstance(dtdt, float): return dtdt # elif isinstance(dtdt, unicode): # if dtdt.split(" ")[1:]: # a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S") # timestamp = time.mktime(a_datetime.timetuple()) # else: # a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d") # timestamp = time.mktime(a_datetime.timetuple()) # return timestamp def become_datetime(self, dtdt): # 将时间类型转换成datetime类型 if isinstance(dtdt, datetime.datetime): return dtdt elif isinstance(dtdt, str): if dtdt.split(" ")[1:]: a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S") else: a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d") return a_datetime elif isinstance(dtdt, float): # 把时间戳转换成datetime类型 a_datetime = datetime.datetime.fromtimestamp(dtdt) return a_datetime # elif isinstance(dtdt, unicode): # if dtdt.split(" ")[1:]: # a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S") # else: # a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d") # return a_datetime def become_str(self, dtdt): # 把时间类型转换成字符串 if isinstance(dtdt, datetime.datetime): a_datetime = dtdt.strftime("%Y-%m-%d %H:%M:%S") return a_datetime elif isinstance(dtdt, str): return dtdt elif isinstance(dtdt, float): a_datetime_local = datetime.datetime.fromtimestamp(dtdt) a_datetime = a_datetime_local.strftime("%Y-%m-%d %H:%M:%S") return a_datetime # elif isinstance(dtdt, unicode): # # 区别:一个是strp, 一个是strf # if dtdt.split(" ")[1:]: # a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S") # a_datetime = a_datetime.strftime("%Y-%m-%d %H:%M:%S") # else: # a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d") # a_datetime = a_datetime.strftime("%Y-%m-%d") # return a_datetime @staticmethod def str_datetime(): return (datetime.datetime.now()).strftime("%Y-%m-%d %H:%M:%S")
time模块
time模块提供各种操作时间的函数
说明:一般有两种表示时间的方式:
1.时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的
2.以数组的形式表示即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同
The tuple items are: year (including century, e.g. 1998) month (1-12) day (1-31) hours (0-23) minutes (0-59) seconds (0-59) weekday (0-6, Monday is 0) Julian day (day in the year, 1-366) DST (Daylight Savings Time) flag (-1, 0 or 1)
1 time() -- 返回时间戳 2 sleep() -- 延迟运行单位为s 3 gmtime() -- 转换时间戳为时间元组(时间元组) 4 localtime() -- 转换时间戳为本地时间对象 5 asctime() -- 将时间对象转换为字符串 6 ctime() -- 将使劲按戳转换为字符串 7 mktime() -- 将本地时间转换为时间戳 8 strftime() -- 将时间对象转换为规范性字符串
常用的格式代码:
1 %Y Year with century as a decimal number. 2 %m Month as a decimal number [01,12]. 3 %d Day of the month as a decimal number [01,31]. 4 %H Hour (24-hour clock) as a decimal number [00,23]. 5 %M Minute as a decimal number [00,59]. 6 %S Second as a decimal number [00,61]. 7 striptime() --将时间字符串根据指定的格式化字符转换成数组形式的时间 8 9 print(time.time()) ---返回当前时间戳 10 print(time.ctime()) ---返回当前时间 11 print(time.ctime(time.time()-86400)) --将时间戳转换为字符串 12 print(time.localtime(time.time()-86400)) --本地时间 13 print(time.mktime(time.localtime())) --与time.localtime()功能相反,将struct_time格式转回成时间戳格式 14 print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())) -- 将struct_time格式转换指定d字符串格式 15 print(time.strptime("2016-01-28","%Y-%m-%d")) --将字符串格式转换成struct_time格式 16 time.sleep(5) 休眠5s
datetime 模块
常用的有:
import datetime print(datetime.datetime.now()) # 2016-05-17 15:46:40.784376 获取当前的日期和时间 print(datetime.datetime.now()+datetime.timedelta(days=10)) # 2016-05-27 15:47:45.702528 将当前的时间向后推迟10天 print(datetime.date.today()) # 2016-05-17 获取当前的日期 print(datetime.datetime.utcnow()) # 2016-05-17 08:23:41.150628 获取格林威治时间 print(datetime.datetime.now().timetuple()) # time.struct_time(tm_year=2016 ... tm_hour=16,...)获取当前一个包含当前时间的结构体 print(datetime.datetime.now().timestamp()) # 1463473711.057878 获取当前的时间戳 print((datetime.datetime.fromtimestamp(1463473711.057878))) # 2016-05-17 16:28:31.057878 将时间戳转换成日期和时间 print(datetime.datetime.strptime('2016-05-17 16:28:31','%Y-%m-%d %H:%M:%S')) #2016-05-17 16:28:31 str转换为datetime print(datetime.datetime.now().strftime('%D, %m %d %H:%M')) #05/23/16, 05 23 10:10 datetime转换为str
定义的类有:
1 datetime.date --表示日期的类。常用的属性有year,month,day 2 datetime.time ---表示时间的类。床用的属性有hour,minute,second,microsecond 3 datetime.datetime --表示日期时间 4 datetime.timedalta --表示时间间隔,即两个时间点之间的长度 5 date类 6 date类表示日期,构造函数如下: 7 datetime.date(year,month,day); 8 year(1-9999) 9 month(1-12) 10 day(1-31) 11 date.today()--返回一个表示当前本地日期的date对象 12 date.fromtimestamp(timestamp) -- 根据给定的时间戳,返回一个date对象 13 date.year() -- 取给定时间的年 14 date.month() -- 取时间对象的月 15 date.day() -- 取给定时间的日 16 date.replace() -- 生成一个新的日期对象,用参数指定的年,月, 日代替原有对象中的属性 17 date.timetuple() -- 返回日期对应的time.struct_time对象 18 date.weekday() -- 返回week,Monday==0...Sunday == 6 19 date.isoweekday() -- 返回weekday,Monday == 1...Sunday == 7 20 date.ctime() -- 返回给定时间的字符串格式
print(datetime.date.today().year) -- 取时间对象的年 print(datetime.date.today().month) --取时间对象的月 print(datetime.date.today().day) --取时间对象的日 print(datetime.date.today().replace(2010,6,12)) --生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性 print(datetime.date.today().timetuple()) 返回给定时间的时间元组/对象 print(datetime.date.today().weekday()) -- 返回weekday,从0开始 print(datetime.date.today().ctime) --返回给定时间的字符串格格式 .tiem类 time类表示时间,由时,分,秒以及微秒组成 time.min() --最小表示时间 time.max() --最大表示时间 time.resolution() -- 微秒 案例: 最大时间 print(datetime.time.max) 最小时间 print(datetime.time.min) 时间最小单位,微秒 print(datetime.time.resolution)
1 ·datetime类 2 datetime是date与time的结合体,包括date与time的所有信息 3 datetime.max() --最大值 4 datetime.min() --最小值 5 datetime.resolution --datetime最小单位 6 datetime.today() -- 返回一个表示当前本地时间 7 datetime.fromtimestamp() --根据给定的时间戳,返回一个datetime对象 8 datetime.year() --取年 9 datetime.month() --取月 10 datetime.day() -- 取日期 11 datetim.replace() - 替换时间 12 datetime.strptime() --将字符串转换成日期格式 13 datetime.time() -- 取给定日期时间的时间
1 案例: 2 3 4 print(datetime.datetime.max) #datetime最大值 5 6 print(datetime.datetime.min) #datetime最小值 7 8 print(datetime.datetime.resolution) #datetime最小单位 9 10 print(datetime.datetime.today()) #返回一个表示当前本地时间 11 12 print(datetime.datetime.fromtimestamp(time.time()))#根据给定的时间戮,返回一个datetime对象 13 14 print(datetime.datetime.now().year) #取时间对象的年 15 16 print(datetime.datetime.now().month) #取时间对象的月 17 18 print(datetime.datetime.now().day) #取时间对象的日 19 20 print(datetime.datetime.now().replace(2010,6,12))#生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性 21 22 print(datetime.datetime.now().timetuple()) #返回给定时间的时间元组/对象 23 24 print(datetime.datetime.now().weekday()) #返回weekday,从0开始 25 26 print(datetime.datetime.now().isoweekday()) #返回weekday,从1开始 27 28 print(datetime.datetime.now().ctime()) #返回给定时间的字符串格式 29 30 print(datetime.datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M"))#将字符串转换成日期格式 31 32 print(datetime.datetime.now().time()) #取给定日期时间的时间 33 34 print(datetime.datetime.now() + datetime.timedelta(days=-5))#获取5日前时间
作者:沐禹辰
出处:http://www.cnblogs.com/renfanzi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
出处:http://www.cnblogs.com/renfanzi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。