【python】 datetime、13位和10位时间戳、字符串的相互转换

1. 将13位整数的时间戳 转化为 字符串
将 13 位整数的毫秒级时间戳转化成 本地普通时间 (字符串格式)

from datetime import datetime

def timestamp_to_strtime(timestamp: int):
    """将 13 位整数的毫秒时间戳转化成本地普通时间 (字符串格式)
    :param timestamp: 13 位整数的毫秒时间戳 (1688091489786)
    :return: 返回字符串格式 {str} '2023-06-30 10:18:09.786000'
    """
    timeArry =  datetime.fromtimestamp(timestamp / 1000.0)
    strtime =timeArray.strftime('%Y-%m-%d %H:%M:%S.%f')  # .%f 带不带都可
    return strtime

2. 将10位整数的时间戳 转化为 字符串
将 10 位整数的秒级时间戳转化成 本地普通时间 (字符串格式)

from datetime import datetime

def timestamp_to_strtime(timestamp: int):
    """将 10 位整数的秒级时间戳转化成本地普通时间 (字符串格式)
    :param timestamp: 10 位整数的秒级时间戳 (1688091489)
    :return: 返回字符串格式 {str} '2022-06-11 18:19:48'
    """
    timeArry =  datetime.fromtimestamp(timestamp)
    strtime =timeArray.strftime('%Y-%m-%d %H:%M:%S')  # .%f 带不带都可
    return strtime

3. 13 位整数转化成 datetime格式
将 13 位整数的毫秒时间戳转化成本地普通时间 (datetime格式)

import time
from datetime import datetime

def timestamp_to_datetime(timestamp: int):
    """将 13 位整数的毫秒时间戳转化成本地普通时间 (datetime 格式)
    :param timestamp: 13 位整数的毫秒时间戳 (1688091489786)
    :return: 返回 datetime 格式 {datetime} 2023-06-30-101809.786999
    """

    timeArray= datetime.fromtimestamp(timestamp / 1000.0)
    return timeArray

4. 10 位整数转化成 datetime格式
将 10 位整数的秒级时间戳转化成本地普通时间 (datetime格式)

import time
from datetime import datetime

def timestamp_to_datetime(timestamp: int):
    """将 10 位整数的毫秒时间戳转化成本地普通时间 (datetime 格式)
    :param timestamp: 10 位整数的秒级时间戳 (1654942788)
    :return: 返回 datetime 格式 {datetime} 2023-06-30-101809
    """

    timeArray= datetime.fromtimestamp(timestamp)
    return timeArray

5. datetime格式的时间(含毫秒) 转化为 字符串

import time
from datetime import datetime


def datetime_to_strtime(datetime):
    """将 datetime 格式的时间 (含毫秒) 转为字符串格式
    :param datetime_obj: {datetime} 2023-06-30-101809.786000
    :return: {str} '2023-06-30-101809.786'
    """

    strtime= datetime.strftime("%Y-%m-%d %H%M%S.%f")
    return strtime

6. 字符串格式的时间(含毫秒) 转化为 datetime

def strtime_to_datetime(strtime :str):
    """将字符串格式的时间 (含毫秒) 转为 datetime 格式
    :param timestr: {str}'2023-06-30-101809.786'
    :return: {datetime}2023-06-30-101809.786000
    """

    timeArray= datetime.strptime(strtime, "%Y-%m-%d %H:%M:%S.%f")
    return timeArray

7. 字符串格式(含毫秒) 转为 13 位整数的毫秒时间戳

from datetime import datetime

def convert_strtime_to_timestamp(strtime: str):
    """将本地时间 (字符串格式,含毫秒) 转为 13 位整数的毫秒时间戳
    :param strtime: {str}'2023-06-30-101809.786'
    :return: 1688091489786
    """
	timeArray= datetime.strptime(strtime, "%Y-%m-%d %H:%M:%S.%f")
    timestamp = int(time.mktime(timeArray.timetuple()) * 1000.0 + timeArray.microsecond / 1000.0)
    return timestamp

8. 字符串格式(含毫秒) 转为 10 位整数的毫秒时间戳

from datetime import datetime

def convert_strtime_to_timestamp(strtime: str):
    """将本地时间 (字符串格式,含毫秒) 转为 10 位整数的时间戳
    :param local_timestr: {str}'2023-06-30-101809.786'
    :return: 1688091489786
    """
	timeArray= datetime.strptime(strtime, "%Y-%m-%d %H:%M:%S")
    timestamp = int(time.mktime(timeArray)
    return timestamp

9. 返回本地当前时间, 包含datetime 格式, 字符串格式, 时间戳格式

from datetime import datetime


def current_datetime():
    """返回本地当前时间, 包含datetime 格式, 字符串格式, 时间戳格式
    :return: (datetime 格式, 字符串格式, 时间戳格式)
    """

    # 当前时间:datetime 格式
    local_datetime_now = datetime.now()

    # 当前时间:字符串格式
    local_strtime_now = local_datetime_now.strftime("%Y-%m-%d %H:%M:%S.%f")

    # 当前时间:时间戳格式 13位整数
    local_timestamp_now = int(time.mktime(local_datetime_now.timetuple()) * 1000.0 + local_datetime_now.microsecond / 1000.0)

    return local_datetime_now, local_strtime_now, local_timestamp_now

参考:https://blog.csdn.net/u014651560/article/details/124244457

你可能感兴趣的:(python)