Python 日期格式轉換


經常需要爬取網站上的時間信息,不同的網站又有不同的日期顯示方式。而我需要將日期格式轉化為一種特定的格式,所以為了簡便和學習,記錄下各種不同的日期格式轉換。

日期格式化符號:

*%y :兩位數的年份表示(00-99)
*%Y :四位數的年份表示(000-9999)
*%m :月份(01-12)
*%d :月內中的一天(0-31)
*%H :24小時制小時數(0-23)
*%I :12小時制小時數(01-12)
*%M :分鍾數(00=59)
*%S :秒(00-59)
*%a :本地簡化星期名稱
*%A :本地完整星期名稱
*%b :本地簡化的月份名稱
*%B :本地完整的月份名稱
*%c :本地相應的日期表示和時間表示
*%j :年內的一天(001-366)
*%p :本地A.M.或P.M.的等價符
*%U :一年中的星期數(00-53)星期天為星期的開始
*%w :星期(0-6),星期天為星期的開始
*%W :一年中的星期數(00-53)星期一為星期的開始
*%x :本地相應的日期表示
*%X :本地相應的時間表示
*%Z :當前時區的名稱
*%% :%號本身

將日期從一種格式轉化為另一種格式:

import time
def trans_format(time_string, from_format, to_format='%Y.%m.%d %H:%M:%S'):
    time_struct = time.strptime(time_string, from_format)
    times = time.strftime(to_format, time_struct)
    return times

#將11 May轉為mm-dd形式
time_string = "11 May"
times = trans_format(time_string, '%d %b', '%m-%d')    #由於沒有輸入年份,所以輸出的默認年份是1900

將1:00pm這種格式轉為24小時制

import time
import datetime

##此方法適用於將12小時制AM/PM轉化為24小時制
##12.30pm -> 12:30
##12.30am -> 00:30
##1.30pm - >13.30
def time12to24(time_string, formats):
    
    times = time.strftime("%H.%M", time.strptime(time_string, formats))    #將時間轉為hh.mm類型
    ftime = datetime.datetime.strptime(times, "%H.%M")    #將times字符串轉為%H.%M的datetime類型
    if time_string.find("am") > -1:
        if times >= '12.00':
            ftime = ftime + datetime.timedelta(hours=36)    # +36小時而不是-12小時的原因:如果未提供年份,則默認為1900,如果-12小時,年份有可能為1899,會異常
    elif time_string.find("pm") > -1:
        if times < '12.00':
            ftime = ftime + datetime.timedelta(hours=12)

    times = ftime.strftime("%H:%M")
        


免責聲明!

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



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