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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值