2010-02-15 23 views
72

मेरे पास 'सोम फरवरी 15 2010' प्रारूप के साथ एक दिनांक स्ट्रिंग है। मैं प्रारूप को '15/02/2010 'में बदलना चाहता हूं। मैं यह कैसे कर सकता हूँ?पार्स दिनांक स्ट्रिंग और परिवर्तन प्रारूप

+0

इन सब के डुप्लिकेट: http://stackoverflow.com/search?q=%5Bpython%5D+parse+date।इस का सटीक डुप्लिकेट: http://stackoverflow.com/questions/1713594/parsing-dates-and-times-from-strings-using-python –

+0

संभावित डुप्लिकेट [दिनांक स्ट्रिंग को पायथन में विभिन्न प्रारूप में कैसे परिवर्तित करें] (http://stackoverflow.com/questions/14524322/how-to-convert-a-date-string-to-different-format-in-python) – Pureferret

उत्तर

91

datetime मॉड्यूल है कि आप के साथ मदद कर सकता है:

datetime.datetime.strptime(date_string, format1).strftime(format2) 
+1

datetime.datetime (सोम 15 फ़रवरी 2010, "% a% b% डी% वाई ")। strftime ("% d /% m /% y ") क्या यह सही है? लेकिन मुझे एक त्रुटि मिली। – Nimmy

+1

@ निममिलीजी: आपने "स्ट्रिंग" भाग देखा, है ना? –

+1

@ निममिलीजी: आपकी टिप्पणी पोस्ट करने से 10 मिनट पहले तय किया गया था। और निश्चित रूप से आपके पास एक स्ट्रिंग के रूप में 'date_string' होना चाहिए। – SilentGhost

0

उपयोग datetime पुस्तकालय http://docs.python.org/library/datetime.html 9.1.7 देखें। especiall strptime() strftime() Behavior¶ उदाहरण http://pleac.sourceforge.net/pleac_python/datesandtimes.html

+0

निममीलिजी के ऊपर की त्रुटि के लिए आपको datetime.datetime.strptime ("सोम फरवरी 15 2010", "% एक% बी% डी% वाई ")। strftime ("% d /% m /% y ") यह '15/02/2010 ' –

20
>>> from_date="Mon Feb 15 2010" 
>>> import time     
>>> conv=time.strptime(from_date,"%a %b %d %Y") 
>>> time.strftime("%d/%m/%Y",conv) 
'15/02/2010' 
37

आप dateutil पुस्तकालय स्थापित कर सकते हैं। इसका parse फ़ंक्शन यह पता लगा सकता है कि datetime.strptime के साथ प्रारूप को निर्दिष्ट किए बिना स्ट्रिंग का प्रारूप किस प्रारूप में है। datetime वस्तु को

from dateutil.parser import parse 
dt = parse('Mon Feb 15 2010') 
print(dt) 
# datetime.datetime(2010, 2, 15, 0, 0) 
print(dt.strftime('%d/%m/%Y')) 
# 15/02/2010 
+0

dateutil.parse देता है यदि एक कानूनी आईएसओ स्ट्रिंग का सटीक प्रारूप है तो बेहतर विकल्प है अज्ञात है। आईएसओ माइक्रोसॉन्ड हो सकता है या नहीं हो सकता है। इसमें पिछला "ज़ेड" हो सकता है या नहीं हो सकता है। datetime.strptime उस के लिए समायोजित करने के लिए पर्याप्त लचीला नहीं है। –

+3

देखभाल तिथि का उपयोग देखभाल के साथ किया जाना चाहिए। पार्स ('12 .07.2017 ') डेटाटाइम लौटाता है (2017, 12, 7, ..) लेकिन पार्स ('13 .07.2017') रिटर्न। डेटटाइम (2017, 7, 13, ...) – ego2dot0

12

परिवर्तित स्ट्रिंग

from datetime import datetime 
s = "2016-03-26T09:25:55.000Z" 
f = "%Y-%m-%dT%H:%M:%S.%fZ" 
datetime = datetime.strptime(s, f) 
print(datetime) 
output: 
2016-03-26 09:25:55 
1
बस पूरा होने की खातिर

: जब strptime() का उपयोग कर एक तारीख को पार्स और तारीख नाम एक दिन की, महीने, आदि शामिल हैं, ध्यान रखें कि आपको लोकेल के लिए खाता है।

यह docs में एक फुटनोट के रूप में भी उल्लेख किया गया है।

एक उदाहरण के रूप: इस सवाल अक्सर आता

import locale 
print(locale.getlocale()) 

>> ('nl_BE', 'ISO8859-1') 

from datetime import datetime 
datetime.strptime('6-Mar-2016', '%d-%b-%Y').strftime('%Y-%m-%d') 

>> ValueError: time data '6-Mar-2016' does not match format '%d-%b-%Y' 

locale.setlocale(locale.LC_ALL, 'en_US') 
datetime.strptime('6-Mar-2016', '%d-%b-%Y').strftime('%Y-%m-%d') 

>> '2016-03-06' 
3

के रूप में, यहाँ सरल व्याख्या है।

datetime या time मॉड्यूल दो महत्वपूर्ण कार्य है।

  • strftime - एक datetime या समय वस्तु से दिनांक या समय की एक स्ट्रिंग प्रतिनिधित्व बनाता है।
  • strptime - एक स्ट्रिंग से एक datetime या समय वस्तु बनाता है।

दोनों ही मामलों में, हम एक formating स्ट्रिंग की जरूरत है। यह प्रतिनिधित्व है जो बताता है कि आपकी स्ट्रिंग में दिनांक या समय कैसे स्वरूपित होता है।

अब मान हम एक तारीख वस्तु देता है।

>>> from datetime import datetime 
>>> d = datetime(2010, 2, 15) 
>>> d 
datetime.datetime(2010, 2, 15, 0, 0) 

हम प्रारूप 'Mon Feb 15 2010'

>>> s = d.strftime('%a %b %d %y') 
>>> print s 
Mon Feb 15 10 

में इस तिथि से एक स्ट्रिंग बनाना चाहते हैं मान हम एक datetime वस्तु को फिर से इस s कनवर्ट करना चाहते हैं देता है।

>>> new_date = datetime.strptime(s, '%a %b %d %y') 
>>> print new_date 
2010-02-15 00:00:00 

This डेटाटाइम के संबंध में सभी स्वरूपण निर्देशों को संदर्भित करें।

संबंधित मुद्दे