經常需要爬取**上的時間資訊,不同的**又有不同的日期顯示方式。而我需要將日期格式轉化為一種特定的格式,所以為了簡便和學習,記錄下各種不同的日期格式轉換。
日期格式化符號:
*%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")
python 日期 格式轉換 英文 日期格式轉換
一 date型轉字串 filter date date,yyyymm filter date time,hh mm 在控制器中使用必須注入 filter 模組 scope.dt1 new date 控制器中使用 scope.dt2 filter date scope.dt1,yyyy mm dd h...
Python中日期格式轉換
import time import datetime deftime format self,time str 統一時間格式 param time str return time str time.strptime time str,y m d time str datetime.datetime...
日期格式轉換
像 mmmm d,yyyy 這樣的日期格式需要設定相應的 locale 才可以被正確識別。例 x june 3,2012 dateformatter setlocale nslocalealloc initwithlocaleidentifier en us autorelease dateform...