时间戳转为日期字串
一、背景
有时需要将时间戳:1565673941
转为日期字串:2019-08-13 13:25:41。
二、分析
采用python,
编写转换函数:time2date(1565673941)
返回时间戳:2019-08-13 13:25:41。
编写转换函数:time2date(1565673941.123456789)
返回时间戳:2019-08-13 13:25:41.123。
三、封装好的函数方法
import time # 封装好的函数2.1:时间戳 转为 日期字符串。单位s,秒。 def time2date(timeint=1565673941, format="%Y-%m-%d %H:%M:%S"): ''' 时间戳转为日期字串,单位s,秒 :param timeint:时间戳 :return:日期字串 输出举例说明: (1565673941, "%Y-%m-%d %H:%M:%S") 输出 2019-08-13 13:25:41 (1565673941, "%Y-%m-%d") 输出 2019-08-13 (1565673941, "%Y%m%d") 输出 20190813 ''' local_time = time.localtime(timeint) data_head = time.strftime(format, local_time) return data_head def time2datems(timefloat, keep_small_num=3, date_format="%Y-%m-%d %H:%M:%S"): ''' 浮点时间戳转为日期字符串格式。 :param timefloat: 时间戳,浮点型。 :param keep_small_num:保留有效小数位数。即定义输出后面小数格式。 :param date_format:定义输出前面主体日期格式。 使用举例说明: (1565673941.123456789, 1, date_format="%Y-%m-%d %H:%M:%S") 输出:2019-08-13 13:25:41.1 (1565673941.123456789, 3, date_format="%Y-%m-%d %H:%M:%S") 输出:2019-08-13 13:25:41.123 (1565673941.123456789, 3, date_format="%Y%m%d %H:%M:%S") 输出:20190813 13:25:41.123 :return:日期字符串,精确到毫秒,ms。 ''' # 获取前半截。日期和大时间 local_time = time.localtime(timefloat) data_head = time.strftime(date_format, local_time) # 获取后半截。毫秒。保留有效数位后。 ms_format = '{:.%sf}' % keep_small_num keep_small_float = ms_format.format(timefloat) keep_small_str = str(keep_small_float).split(".") ms_str = str(keep_small_str[1]) # 拼接前后部分。 dt_ms = "%s.%s" % (data_head, ms_str) return dt_ms if __name__ == '__main__': timeint1 = 1565673941 format1 = "%Y-%m-%d %H:%M:%S" d1 = time2date(timeint1, format1) print(d1) timeint2 = 1565673941 format2 = "%Y%m%d" d2 = time2date(timeint2, format2) print(d2) timefloat3 = 1565673941.123456789 d3 = time2datems(timefloat3, 2) print(d3) timefloat4 = 1565673941.123456789 format4 = "%Y%m%d %H:%M:%S" d4 = time2datems(timefloat4, 3, format4) print(d4)
延伸:
UTC时间、ISO格式
1、UTC时间是英国时间。非UTC(英国)时间,如:UTC+8(北京)时间。
2、ISO格式是时间的字符串表示形式
(1)用字母T分割日期和时间。如20180703T224426Z或2018-07-03T22:44:26Z 。
(2)用字母Z表示是UTC(英国)时间。但是不加Z的不一定是什么时间了。
参考: