python 时间格式化和时间比较

前言:

工作中经常需要对时间做格式化处理,也有时候需要对各种格式的时间进行比较,这里简单梳理一下处理方法。

1.时间格式化

时间格式化涉及到不同类型的时间格式相互转换,其简单的思路就是规定一种通用时间表示格式,转换的话就先转成通用格式,然后再做进一步调整,我们通常见的格式是时间戳,所以这里写一个时间戳转格式时间的函数

import datetime

def get_formattime_from_timestamp(time_stamp):
    date_array = datetime.datetime.utcfromtimestamp(time_stamp)
    time_str = date_array.strftime("%Y-%m-%d %H:%M:%S.%f")
    return time_str

if __name__ == '__main__':
    print get_formattime_from_timestamp(1579421126.123)

结果:

2020-01-19 08:05:26.123000

2.格式化时间转时间戳

import time

def get_timestamp_from_formattime(format_time):
    struct_time = time.strptime(format_time, '%Y-%m-%d %H:%M:%S')
    return time.mktime(struct_time)


if __name__ == '__main__':
    print get_timestamp_from_formattime('2020-01-19 16:08:32')

结果:

1579421312.0

3.时间比较

时间比较建议先把各种格式的时间用 2 的方法全部转换成时间戳,然后对时间戳进行大小比较

def compare_time(time_1, time_2):
    if time_1 and time_2:
        time_stamp_1 = time.mktime(time.strptime(time_1, '%Y-%m-%d %H:%M'))
        time_stamp_2 = time.mktime(time.strptime(time_2, '%Y-%m-%d %H:%M'))
        if int(time_stamp_1) > int(time_stamp_2):
            return time_2
        else:
            return time_1
    else:
        return None

4.当前时间

有好几种方式

import datetime
import time

if __name__ == '__main__':
    print time.time()
    print time.strftime('%Y-%m-%d %H:%M:%S')
    print datetime.datetime.utcnow()

结果:

1579422002.85
2020-01-19 16:20:02
2020-01-19 08:20:02.851000
发布了76 篇原创文章 · 获赞 46 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qingquanyingyue/article/details/104041753