जवाबों:
datetime
मॉड्यूल आपकी मदद कर सकता है:
datetime.datetime.strptime(date_string, format1).strftime(format2)
विशिष्ट उदाहरण के लिए आप कर सकते हैं
>>> datetime.datetime.strptime('Mon Feb 15 2010', '%a %b %d %Y').strftime('%d/%m/%Y')
'15/02/2010'
>>>
date_string
एक स्ट्रिंग के रूप में होना चाहिए ।
format1
इनपुट दिनांक स्ट्रिंग के प्रारूप को व्यक्त करने के लिए एक स्ट्रिंग की आवश्यकता है। format2
आउटपुट के लिए लक्ष्य स्ट्रिंग प्रारूप है।
आप डेटूटिल लाइब्रेरी स्थापित कर सकते हैं । इसका parse
कार्य यह पता लगा सकता है कि आपके द्वारा किए गए प्रारूप को निर्दिष्ट करने के बिना एक स्ट्रिंग किस प्रारूप में है datetime.strptime
।
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
python 3.x
की जरूरत है स्थापित करने के लिएpython-dateutil
pip install python-dateutil
>>> 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'
स्ट्रिंग को डेटाइम ऑब्जेक्ट में बदलें
from datetime import datetime
s = "2016-03-26T09:25:55.000Z"
f = "%Y-%m-%dT%H:%M:%S.%fZ"
out = datetime.strptime(s, f)
print(out)
output:
2016-03-26 09:25:55
जैसा कि यह सवाल अक्सर आता है, यहाँ सरल स्पष्टीकरण है।
datetime
या time
मॉड्यूल के दो महत्वपूर्ण कार्य हैं।
दोनों ही मामलों में, हमें एक तैयार स्ट्रिंग की आवश्यकता है। यह प्रतिनिधित्व है जो बताता है कि आपकी स्ट्रिंग में दिनांक या समय को कैसे स्वरूपित किया गया है।
अब मान लेते हैं कि हमारे पास एक दिनांक ऑब्जेक्ट है।
>>> 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
मान लें कि हम इसे s
फिर से किसी datetime
ऑब्जेक्ट में बदलना चाहते हैं ।
>>> new_date = datetime.strptime(s, '%a %b %d %y')
>>> print new_date
2010-02-15 00:00:00
इस दस्तावेज़ को सभी फॉर्मेटिंग निर्देशों को देखें
बस पूरा करने के लिए: जब किसी तारीख का उपयोग करते हुए strptime()
और तारीख में एक दिन, महीने, आदि का नाम शामिल हो, तो ध्यान रखें कि आपको लोकेल का हिसाब देना होगा।
यह डॉक्स में एक फुटनोट के रूप में भी उल्लेख किया गया है ।
उदहारण के लिए:
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'
@codeling और @ user1767754: निम्नलिखित दो लाइनें काम करेंगी। मैंने देखा कि कोई भी उदाहरण समस्या के लिए पूरा समाधान पोस्ट नहीं किया गया था। उम्मीद है कि यह पर्याप्त स्पष्टीकरण है।
import datetime
x = datetime.datetime.strptime("Mon Feb 15 2010", "%a %b %d %Y").strftime("%d/%m/%Y")
print(x)
आउटपुट:
15/02/2010
आप पंडों का उपयोग करके इसे प्राप्त कर सकते हैं:
import pandas as pd
pd.to_datetime('Mon Feb 15 2010', format='%a %b %d %Y').strftime('%d/%m/%Y')
आउटपुट:
'15/02/2010'
आप विभिन्न डेटाटाइप्स के लिए पंडों के दृष्टिकोण को इस प्रकार लागू कर सकते हैं:
import pandas as pd
import numpy as np
def reformat_date(date_string, old_format, new_format):
return pd.to_datetime(date_string, format=old_format, errors='ignore').strftime(new_format)
date_string = 'Mon Feb 15 2010'
date_list = ['Mon Feb 15 2010', 'Wed Feb 17 2010']
date_array = np.array(date_list)
date_series = pd.Series(date_list)
old_format = '%a %b %d %Y'
new_format = '%d/%m/%Y'
print(reformat_date(date_string, old_format, new_format))
print(reformat_date(date_list, old_format, new_format).values)
print(reformat_date(date_array, old_format, new_format).values)
print(date_series.apply(lambda x: reformat_date(x, old_format, new_format)).values)
आउटपुट:
15/02/2010
['15/02/2010' '17/02/2010']
['15/02/2010' '17/02/2010']
['15/02/2010' '17/02/2010']
डेटाटाइम लाइब्रेरी का उपयोग करें http://docs.python.org/library/datetime.html 9.1.7 देखें। especiall strptime () strftime () Behavior http:// उदाहरण http://pleac.sourceforge.net/pleac_python/datesandtimes.html