python時間格式轉換


今天寫python時遇到時間格式的比較問題

已知的格式是

06/24/2021 15:47:01.491
 
時間比較的思路是,把數據轉換成時間戳比較:
 
第一步是把 06/24/2021 15:47:01.491 格式轉換稱 2021-06-24 15:47:01.490000
 
valid_time = '06/24/2021 15:47:01.490'
d1 = datetime.datetime.strptime(valid_time,'%m/%d/%Y %H:%M:%S.%f')
d2 = datetime.datetime.strptime(valid_time,'%m/%d/%Y %H:%M:%S.%f').strftime('%Y-%m-%d %H:%M:%S.%f')
print(d1, type(d1))
print(d2, type(d2))

結果:

  2021-06-24 15:47:01.490000 <class 'datetime.datetime'>
  2021-06-24 15:47:01.490000 <class 'str'>
 
第二步是將 2021-06-24 15:47:01.490000 數據轉換成毫秒的時間戳
 
dd = datetime.datetime.strptime(valid_time,'%m/%d/%Y %H:%M:%S.%f')
ts = int(time.mktime(dd.timetuple()) * 1000.0 + (dd.microsecond / 1000.0))
print(ts, type(ts))

結果:

  1624520821490 <class 'int'>

如果是秒級的數據轉換成時間戳:

def get_time_stamp(valid_time):
    dd = datetime.datetime.strptime(valid_time, '%m/%d/%Y %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S')
    ts = int(time.mktime(time.strptime(dd, '%Y-%m-%d %H:%M:%S')))
    print(ts)

if __name__ == '__main__':
    get_time_stamp("06/24/2021 15:47:01")

結果:

  2021-06-24 15:47:01 <class 'str'>

  1624520821

 
第三步就是兩個毫秒級的時間戳進行比較
'''
@description: 獲取時間的時間戳進行時間大小比較
@param {*} valid_time 傳入的時間格式:指定為 "06/24/2021 15:47:01.490"
@return {*}    返回 valid_time 的時間戳
@author: wanghao
'''
def get_time_stamp(valid_time):
    dd = datetime.datetime.strptime(valid_time,'%m/%d/%Y %H:%M:%S.%f')
    ts = int(time.mktime(dd.timetuple()) * 1000.0 + (dd.microsecond / 1000.0))
    return ts

if __name__ == '__main__':
    stamp1 = get_time_stamp("06/24/2021 15:47:01.490")
    stamp2 = get_time_stamp("06/24/2021 15:47:01.778")
    if (stamp1 - stamp2 <= 0):
        print('stamp1 is bigger')
    else:
        print('stamp2 is bigger')

 

如果傳進來的字符串是毫秒級的,但是需要的時間戳是秒級的,就轉換一下

def get_time_stamp(valid_time):
    dd = datetime.datetime.strptime(valid_time,'%m/%d/%Y %H:%M:%S.%f').strftime("%Y-%m-%d %H:%M:%S")
    ts = int(time.mktime(time.strptime(dd, '%Y-%m-%d %H:%M:%S')))
    return ts

if __name__ == '__main__':
    stamp1 = get_time_stamp("06/24/2021 15:47:01.490")
    stamp2 = get_time_stamp("06/24/2021 15:47:02.778")
    if (stamp1 - stamp2 <= 0):
        print('stamp2 is bigger')
    else:
        print('stamp1 is bigger')

 

總結:

  兩個時間比較,就是把兩個時間的字符串轉換成int類型的時間戳進行比較。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM