python生成13位或16位时间戳以及反向解析时间戳的实例

本文介绍了Python如何生成13位或16位时间戳,并详细讲解了如何反向解析这些时间戳,同时拓展讨论了Python生成唯一Id的多种方法。
import datetime
import time


def get_float_time_stamp():
    datetime_now = datetime.datetime.now()
    return datetime_now.timestamp()


def get_time_stamp16():
    # 生成16时间戳  eg:1540281250399895  -ln
    datetime_now = datetime.datetime.now()
    print(datetime_now)

    # 10位,时间点相当于从UNIX TIME的纪元时间开始的当年时间编号
    date_stamp = str(int(time.mktime(datetime_now.timetuple())))

    # 6位,微秒
    data_microsecond = str("%06d" % datetime_now.microsecond)

    date_stamp = date_stamp + data_microsecond
    return int(date_stamp)


def get_time_stamp13():
    # 生成13时间戳  eg:1540281250399895
    datetime_now = datetime.datetime.now()

    # 10位,时间点相当于从UNIX TIME的纪元时间开始的当年时间编号
    date_stamp = str(int(time.mktime(datetime_now.timetuple())))

    # 3位,微秒
    data_microsecond = str("%06d" % datetime_now.microsecond)[0:3]

    date_stamp = date_stamp + data_microsecond
    return int(date_stamp)


def stampToTime(stamp):
    datatime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(float(str(stamp)[0:10])))
    datatime = datatime + '.' + str(stamp)[10:]
    return datatime


if __name__ == '__main__':
    a1 = get_time_stamp16()
    print(a1)
    print(stampToTime(a1))
    a2 = get_time_stamp13()
    print(a2)
    print(stampToTime(a2))

补充拓展:关于python生成唯一Id的几种方法小结

# coding:utf-8
import random


def createRandomString(len):
    print('wet'.center(10, '*'))
    raw = ""
    range1 = range(58, 65)  # between 0~9 and A~Z
    range2 = range(91, 97)  # between A~Z and a~z

    i = 0
    while i < len:
        seed = random.randint(48, 122)
        if ((seed in range1) or (seed in range2)):
            continue;
        raw += chr(seed);
        i += 1
    # print(raw)
    return raw


print
createRandomString(20)

________________________________________________________________________

import time

from datetime import datetime

"""将 13 位整数的毫秒时间戳转化成本地普通时间 (字符串格式)
:param timestamp: 13 位整数的毫秒时间戳 (1456402864242)
:return: 返回字符串格式 {str}'2016-02-25 20:21:04.242000'
"""
def timestamp_to_strtime(timestamp):
    local_str_time = datetime.fromtimestamp(timestamp / 1000.0).strftime('%Y-%m-%d %H:%M:%S.%f')
    return local_str_time





"""将 13 位整数的毫秒时间戳转化成 utc 时间 (字符串格式,含毫秒)
:param timestamp: 13 位整数的毫秒时间戳 (1456402864242)
:return: 返回字符串格式 {str}'2016-02-25 12:21:04.242000'
"""
def timestamp_to_utc_strtime(timestamp):
    utc_str_time = datetime.utcfromtimestamp(timestamp / 1000.0).strftime('%Y-%m-%d %H:%M:%S.%f')
    return utc_str_time


print(timestamp_to_strtime(1630509445862))

def stampToTime(stamp):
    datatime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(float(str(stamp)[0:10])))
    datatime = datatime + '.' + str(stamp)[10:]
    return datatime


print(stampToTime(1630509445862))
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值