2013-05-17 7 views
13

मुझे yymmdd प्रारूप में 6-अंकों की तिथियों का प्रतिनिधित्व करने वाले तारों को पार्स करने की आवश्यकता है जहां yy 5 9 से 05 (1 9 5 9 से 2005 तक) तक है। time मॉड्यूल दस्तावेज़ों के अनुसार, पायथन का डिफ़ॉल्ट पिवट वर्ष 1 9 6 9 है जो मेरे लिए काम नहीं करेगा।स्ट्रिंग तिथियों को 2-अंकों के साथ कैसे पार्स करें?

क्या पिवोट वर्ष को ओवरराइड करने का कोई आसान तरीका है, या आप कुछ अन्य समाधान सुझा सकते हैं? मैं पायथन 2.7 का उपयोग कर रहा हूँ। धन्यवाद!

उत्तर

18

मैं datetime का उपयोग करता हूं और इसे सामान्य रूप से पार्स करता हूं। तब मैं वस्तु पर datetime.datetime.replace का उपयोग करते हैं यह अतीत अपने छत तारीख है - यह वापस 100 साल .: समायोजन

import datetime 
dd = datetime.datetime.strptime(date,'%y%m%d') 
if dd.year > 2005: 
    dd = dd.replace(year=dd.year-100) 
1

प्रारंभ में लगा अपनी खुद की धुरी का उपयोग कर अपने तारीख को सदी:

year = int(date[0:2]) 
    if 59 <= year <= 99: 
     date = '19' + date 
    else 
     date = '20' + date 

और फिर %y के बजाय %Y निर्देश के साथ strptime का उपयोग करें।

1
import datetime 
date = '20-Apr-53' 
dt = datetime.datetime.strptime(date, '%d-%b-%y') 
if dt.year > 2000: 
    dt = dt.replace(year=dt.year-100) 
        ^2053 ^1953 
print dt.strftime('%Y-%m-%d') 
0

आप निम्न कर सकते हैं:

today=datetime.datetime.today().strftime("%m/%d/%Y") 
today=today[:-4]+today[-2:] 
संबंधित मुद्दे