一、前言
在开发中,我们经常会遇到时间戳转换日期,或者日期转换为时间戳;
日期格式:2019-08-01 00:00:00
时间戳格式:1564588800
关于时间戳
Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中(比如Linux系统),也在许多其他操作系统中被广泛采用。
二、代码实现
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/8/20 14:09 # @Author : admin # @Site : # @File : time_api.py # @Software: PyCharm import time ''' 常规时间转换为时间戳 ''' test1 = '2019-8-01 00:00:00' def time_data1(time_sj): #传入单个时间比如'2019-8-01 00:00:00',类型为str data_sj = time.strptime(time_sj,"%Y-%m-%d %H:%M:%S") #定义格式 time_int = int(time.mktime(data_sj)) return time_int #返回传入时间的时间戳,类型为int ''' 时间戳转换年月日时间格式 ''' test2 = 1564588800 def time_data2(time_sj): #传入参数 data_sj = time.localtime(time_sj) time_str = time.strftime("%Y-%m-%d %H:%M:%S",data_sj) #时间戳转换正常时间 return time_str #返回日期,格式为str
以上函数已经实现日期与时间戳的互相转换,并在调用函数后返回指定的格式数据。
if __name__ == '__main__': test1 = '2019-8-01 00:00:00' test2 = 1564588800 time1_def = time_data1(test1) print('函数一将日期转换为时间戳----->:',time1_def) time2_def = time_data2(test2) print('函数二将时间戳转换为常规日期----->:',time2_def)
执行结果
三、扩展
将时间戳以列表的形式传入,传入一个列表。在以列表的形式返回;
def time_data3(L=[]): #传入列表参数 time_li = [] for i in L: time_int = i time_sj = time.localtime(time_int) time_str = time.strftime("%Y-%m-%d %H:%M:%S",time_sj) #时间戳转换正常时间 time_li.append(time_str) return time_li #返回列表
函数调用
if __name__ == '__main__': test1 = '2019-8-01 00:00:00' test2 = 1564588800 time1_def = time_data1(test1) print('函数一将日期转换为时间戳----->:',time1_def) time2_def = time_data2(test2) print('函数二将时间戳转换为常规日期----->:',time2_def) test3 = [1564102800, 1564135200, 1564362000, 1564394400, 1564448400, 1564480800, 1564534800, 1564567200] time3_def = time_data3(test3) print('函数三传入参数列表实现时间戳批量转换日期----->:',time3_def)