कोर्स
Python में, strings तारीख़ और समय का प्रतिनिधित्व करने के लिए प्रचलित डेटा टाइप हैं, लेकिन डेटा वैज्ञानिकों और इंजीनियरों के रूप में हमें अक्सर इन स्ट्रिंग्स को विभिन्न ऑपरेशंस जैसे सॉर्टिंग या तुलना के लिए datetime ऑब्जेक्ट्स में बदलने की आवश्यकता होती है।
स्ट्रिंग्स को datetime ऑब्जेक्ट्स में बदलना पेचीदा हो सकता है, खासकर Python के नए उपयोगकर्ताओं के लिए। इसलिए, इस लेख में, मैं आपको इन तरीकों का उपयोग करने के लिए आवश्यक चरणों से परिचित कराऊँगा और साथ में कोड उदाहरण भी दूँगा। चाहे आप अनुभवी डेवलपर हों या अपनी यात्रा की शुरुआत कर रहे हों, आइए Python में datetime ऑब्जेक्ट्स की दुनिया में उतरते हैं!
इस ट्यूटोरियल के सभी उदाहरण कोड स्वयं आसानी से चलाने के लिए, आप मुफ़्त में एक DataLab वर्कबुक बनाएँ जिसमें Python पहले से इंस्टॉल है और सभी कोड सैंपल शामिल हैं। स्ट्रिंग्स को datetime ऑब्जेक्ट्स में बदलने का अधिक अभ्यास करने के लिए यह हैंड्स-ऑन DataCamp अभ्यास देखें।
संक्षेप में
Python में स्ट्रिंग्स को datetime ऑब्जेक्ट्स में बदलने के लिए datetime.strptime(date_string, format) का उपयोग करें। बिना फ़ॉर्मेट स्ट्रिंग दिए लचीले पार्सिंग के लिए dateutil.parser.parse() का उपयोग करें। DataFrames के लिए, pd.to_datetime() पूरी कॉलम को कुशलतापूर्वक संभालता है। प्रमुख फ़ॉर्मेट कोड: %Y (4-अंकों का वर्ष), %m (माह), %d (दिन), %H (घंटा), %M (मिनट), %S (सेकंड)।
Python के datetime मॉड्यूल का परिचय
Python में अंतर्निर्मित datetime मॉड्यूल का उपयोग, जब भी आपको Python से बनी किसी भी एप्लिकेशन में तारीख़, समय या समयांतराल के साथ काम करना हो, किया जा सकता है। यह तारीख़ और समय डेटा को दर्शाने और उनमें हेरफेर करने के लिए सुविधाजनक क्लासेस और मेथड्स प्रदान करता है।
तालिका 1: datetime मॉड्यूल में क्लासेस और मेथड्स का सारांश
| क्लास/मेथड | उद्देश्य | सामान्य उपयोग के मामले |
|---|---|---|
| datetime.date | एक तारीख़ (वर्ष, माह, दिन) का प्रतिनिधित्व करता है। | तारीख़ों के बीच अंतर निकालना, तारीख़ों को स्ट्रिंग में फ़ॉर्मेट करना, तारीख़ के घटक निकालना। |
| datetime.time | दिन के समय (घंटा, मिनट, सेकंड, माइक्रोसेकंड) का प्रतिनिधित्व करता है। | समयों की तुलना, समय को स्ट्रिंग में फ़ॉर्मेट करना, समय के घटक निकालना। |
| datetime.datetime | तारीख़ और समय का प्रतिनिधित्व करता है। यह date और time फंक्शनैलिटी को जोड़ता है। | टाइम-सीरीज़ डेटा के साथ काम करना, तारीख़ और समय के घटक निकालना, स्ट्रिंग के रूप में फ़ॉर्मेट करना। |
| datetime.timedelta | दो तारीख़ों या समयों के बीच के अंतर (अवधि) का प्रतिनिधित्व करता है। | तारीख़ों/समयों में अवधि जोड़ना/घटाना, समयांतराल की गणना। |
| datetime.strptime() | निर्दिष्ट फ़ॉर्मेट के आधार पर किसी स्ट्रिंग को datetime ऑब्जेक्ट में पार्स करता है। | आगे के हेरफेर और विश्लेषण के लिए स्ट्रिंग्स को datetime ऑब्जेक्ट्स में बदलना। |
| datetime.strftime() | निर्दिष्ट फ़ॉर्मेट के आधार पर किसी datetime ऑब्जेक्ट को स्ट्रिंग में फ़ॉर्मेट करता है। | डिस्प्ले या रिपोर्टिंग के लिए datetime ऑब्जेक्ट्स को पठनीय स्ट्रिंग्स में बदलना। |
आइए इस मॉड्यूल के मुख्य क्लासेस को समझते हैं, क्योंकि हम इन्हें datetime ऑब्जेक्ट्स में बदलेंगे:
1. datetime.date
यह क्लास एक तारीख़ (वर्ष, माह और दिन) का प्रतिनिधित्व करती है और तारीख़ों के साथ काम करने के तरीके प्रदान करती है, जैसे दो तारीख़ों के बीच का अंतर निकालना और तारीख़ों को स्ट्रिंग्स के रूप में फ़ॉर्मेट करना।
मान लीजिए हमारे पास किसी कंपनी के दैनिक स्टॉक मूल्य वाला एक डेटासेट है। हम डेटासेट से तारीख़ें निकालने और समय के साथ स्टॉक कीमतों को प्लॉट करने के लिए date क्लास का उपयोग कर सकते हैं।
यहाँ date क्लास के उपयोग का एक स्निपेट है:
from datetime import date
# create a date object representing March 1, 2023
start_date = date(2023, 3, 1)
# extract information such as the year, month, and day
year = start_date.year
month = start_date.month
day = start_date.day
# get the day of the week (Note: Monday is coded as 0, and Sunday as 6)
weekday = start_date.weekday()
# the date can be formatted as a string if needed
date_str = start_date.strftime('%Y-%m-%d')
2. datetime.time
यह क्लास दिन के समय (घंटा, मिनट, सेकंड और माइक्रोसेकंड) का प्रतिनिधित्व करती है और समयों के साथ काम करने के तरीके प्रदान करती है, जैसे समयों की तुलना करना और समयों को स्ट्रिंग्स के रूप में फ़ॉर्मेट करना।
मान लीजिए हमारे पास एक रेस के समाप्ति समय वाला डेटासेट है; हम time क्लास का उपयोग करके प्रत्येक प्रतियोगी के समाप्ति समय के घंटे और मिनट निकाल सकते हैं।
from datetime import time
# create a time object with the microsecond granularity
end_time = time(15, 45, 30, 500000)
# get the hour and minute
hour = end_time.hour
minute = end_time.minute
second = end_time.second
microsecond = end_time.microsecond
3. datetime.datetime
यह क्लास तारीख़ और समय—दोनों का प्रतिनिधित्व करती है और दोनों के साथ काम करने के तरीके देती है। यह date और time क्लासेस की कार्यक्षमता को जोड़ती है।
यह अक्सर उन डेटा विश्लेषण कार्यों में उपयोग होती है जिनमें उच्च समय-रिज़ॉल्यूशन वाला टाइम-सीरीज़ डेटा शामिल होता है, जैसे प्रति घंटा या प्रति मिनट का डेटा। मान लें हमारे पास किसी शहर की प्रति घंटा बिजली मांग वाला डेटासेट है। हम डेटासेट से तारीख़ और समय निकालने और समय के साथ बिजली की मांग को प्लॉट करने के लिए datetime क्लास का उपयोग कर सकते हैं। ऐसे डेटा को विज़ुअलाइज़ करने के लिए हमारा Matplotlib टाइम सीरीज़ लाइन प्लॉट ट्यूटोरियल देखें।
from datetime import datetime
# create a datetime object representing March 1, 2023 at 9:30 AM
start_datetime = datetime(2023, 3, 1, 9, 30)
# get the year, month, day, hour, and minute
year = start_datetime.year
month = start_datetime.month
day = start_datetime.day
hour = start_datetime.hour
minute = start_datetime.minute
4. datetime.timedelta
यह क्लास किसी अवधि या समयांतराल का प्रतिनिधित्व करती है और समयांतरालों के साथ काम करने के तरीके प्रदान करती है, जैसे तारीख़ों या समयों से समयांतराल जोड़ना या घटाना।
मान लीजिए हमारे पास कई घटनाओं के प्रारंभ और समाप्ति समय वाला डेटासेट है, और हम सभी घटनाओं की कुल अवधि निकालना चाहते हैं। हम प्रत्येक घटना की अवधि की गणना करने और उन्हें जोड़ने के लिए timedelta क्लास का उपयोग कर सकते हैं।
from datetime import timedelta
# create a timedelta object representing 3 hours and 15 minutes
event_duration = timedelta(hours=3, minutes=15)
# get the total duration in seconds
event_duration_seconds = event_duration.total_seconds()
# add the duration to a start time to get an end time
event_start_time = datetime(2023, 3, 1, 18, 15)
event_end_time = event_start_time + event_duration
इन सभी मामलों में हमने datetime ऑब्जेक्ट्स का उपयोग किया, लेकिन वास्तविक दुनिया का डेटा अक्सर व्यवहार में स्ट्रिंग ही रहता है। और datetime ऑब्जेक्ट में बदलने से ऊपर बताई गई सभी क्षमताएँ खुल जाती हैं, जो डेटा साइंस विश्लेषण और अनुप्रयोगों में शक्तिशाली हैं।
Datetime रूपांतरण के लिए datetime.strptime() का उपयोग
Python में, हम किसी स्ट्रिंग को datetime ऑब्जेक्ट में बदलने के लिए datetime.strptime() मेथड का उपयोग कर सकते हैं। strptime() मेथड दो आर्ग्यूमेंट लेता है: बदली जाने वाली स्ट्रिंग और एक फ़ॉर्मेट स्ट्रिंग जो इनपुट स्ट्रिंग के फ़ॉर्मेट को निर्दिष्ट करती है।
फ़ॉर्मेट स्ट्रिंग, तारीख़ और समय के विभिन्न घटकों को दर्शाने के लिए फ़ॉर्मेटिंग कोड का संयोजन उपयोग करती है। यहाँ कुछ सबसे प्रचलित फ़ॉर्मेटिंग कोड दिए गए हैं (समान अवधारणाएँ Python स्ट्रिंग फ़ॉर्मेटिंग में भी लागू होती हैं):
तालिका 2: सामान्य datetime फ़ॉर्मेटिंग कोड
| फ़ॉर्मेट कोड | विवरण | उदाहरण इनपुट | उदाहरण आउटपुट |
|---|---|---|---|
| %Y | 4-अंकों का वर्ष | 2023 | 2023 |
| %y | 2-अंकों का वर्ष | 23 | 23 |
| %m | 2-अंकों का माह (01-12) | 03 | 03 |
| %d | महीने का 2-अंकों का दिन (01-31) | 15 | 15 |
| %H | 2-अंकों का घंटा (00-23) | 14 | 14 |
| %I | 2-अंकों का घंटा (01-12) | 02 | 02 |
| %M | 2-अंकों का मिनट (00-59) | 45 | 45 |
| %S | 2-अंकों का सेकंड (00-59) | 30 | 30 |
| %f | माइक्रोसेकंड (000000-999999) | 123456 | 123456 |
| %p | AM या PM | PM | PM |
| %z | UTC ऑफ़सेट | +0530 | +0530 |
| %a | सप्ताह के दिन का संक्षिप्त नाम | Tue | Tue |
| %A | सप्ताह के दिन का पूरा नाम | Tuesday | Tuesday |
| %b | महीने का संक्षिप्त नाम | Mar | Mar |
| %B | महीने का पूरा नाम | March | March |
| %j | वर्ष का दिन (001-366) | 074 | 074 |
| %U | वर्ष का सप्ताह नंबर (रविवार प्रथम दिन) | 10 | 10 |
| %W | वर्ष का सप्ताह नंबर (सोमवार प्रथम दिन) | 09 | 09 |
अब जब हम strptime निर्देशों को समझ गए हैं, स्ट्रिंग्स को datetime ऑब्जेक्ट्स में बदलने की प्रक्रिया सरल हो जाती है।
- चरण 01: उस दिनांक-समय स्ट्रिंग का विश्लेषण करें जिसे बदला जाना है, ताकि फ़ॉर्मेटिंग कोड से मेल खाते पैटर्न मिल सकें।
- चरण 02: strptime() निर्देशों से दिनांक-समय फ़ॉर्मेट बनाएँ।
- चरण 03: स्ट्रिंग और फ़ॉर्मेट को फ़ंक्शन में पास करें और आउटपुट के रूप में ऑब्जेक्ट प्राप्त करें।
आइए इन चरणों को अमल में लाते हैं।
एक विशिष्ट फ़ॉर्मेट वाली स्ट्रिंग को datetime ऑब्जेक्ट में बदलना
from datetime import datetime
# Example with the standard date and time format
date_str = '2023-02-28 14:30:00'
date_format = '%Y-%m-%d %H:%M:%S'
date_obj = datetime.strptime(date_str, date_format)
print(date_obj)
# Example with a different format
date_str = '02/28/2023 02:30 PM'
date_format = '%m/%d/%Y %I:%M %p'
date_obj = datetime.strptime(date_str, date_format)
print(date_obj)
पहले उदाहरण में, हमारे पास ‘YYYY-MM-DD HH:MM:SS’ फ़ॉर्मेट में तारीख़ और समय दर्शाने वाली स्ट्रिंग है, और दूसरे उदाहरण में अलग फ़ॉर्मेट ‘MM/DD/YYYY HH:MM AM/PM’ है।
दोनों ही मामलों में, हम strptime() को दूसरा आर्ग्यूमेंट के रूप में सही फ़ॉर्मेट स्ट्रिंग निर्दिष्ट करते हैं ताकि सही datetime ऑब्जेक्ट प्राप्त हो।
टाइमज़ोन जानकारी वाली स्ट्रिंग को datetime ऑब्जेक्ट में बदलना
from datetime import datetime
date_str = '2023-02-28 14:30:00+05:30'
date_format = '%Y-%m-%d %H:%M:%S%z'
date_obj = datetime.strptime(date_str, date_format)
print(date_obj)
इस उदाहरण में, हमारे पास ‘YYYY-MM-DD HH:MM:SS+TZOFFSET’ फ़ॉर्मेट में टाइमज़ोन जानकारी सहित तारीख़ और समय दर्शाने वाली स्ट्रिंग है, जहाँ TZOFFSET UTC से घंटों और मिनटों में टाइमज़ोन ऑफ़सेट है। हम strptime() को दूसरा आर्ग्यूमेंट देते समय %z फ़ॉर्मेटिंग कोड शामिल करते हैं ताकि टाइमज़ोन ऑफ़सेट पार्स किया जा सके।
हालाँकि ऊपर का फ़ंक्शन सैद्धांतिक रूप से आसान लगता है, व्यवहार में गड़बड़ी होने पर यह निराशा का कारण भी बन सकता है।
dateutil का उपयोग करके बिना फ़ॉर्मेट स्ट्रिंग के तारीख़ें पार्स करना
एक और लचीला विकल्प dateutil लाइब्रेरी है, खासकर parser.parse() फ़ंक्शन। यह स्वतः तारीख़ फ़ॉर्मेट पहचानता है, जिससे आप बिना कोई फ़ॉर्मेट स्ट्रिंग दिए स्ट्रिंग्स को पार्स कर सकते हैं।
from dateutil.parser import parse
# Automatically infers the format
date_obj = parse("March 1, 2023 9:30 AM")
print(date_obj)
यह विशेष रूप से तब उपयोगी है जब आप अप्रत्याशित या असंगत तारीख़ फ़ॉर्मेट्स से निपट रहे हों।
टाइमज़ोन हैंडलिंग
टाइमज़ोन-अवेयर datetime हैंडलिंग के लिए, Python दो लोकप्रिय विकल्प देता है:
-
pytz (व्यापक रूप से प्रयुक्त और पुराने संस्करणों के साथ संगत)
-
zoneinfo (Python 3.9 में पेश, मानक लाइब्रेरी का भाग)
from datetime import datetime
from zoneinfo import ZoneInfo
# Using zoneinfo
dt = datetime(2023, 3, 1, 9, 30, tzinfo=ZoneInfo("America/New_York"))
print(dt)
# Using pytz (alternative)
import pytz
tz = pytz.timezone("America/New_York")
dt_pytz = tz.localize(datetime(2023, 3, 1, 9, 30))
print(dt_pytz)
ये टूल्स आपको टाइमज़ोन असाइन करने, उनके बीच कन्वर्ट करने, और डेलाइट सेविंग टाइम का स्वचालित रूप से ध्यान रखने देते हैं।
डेलाइट सेविंग टाइम पर विचार
टाइमज़ोन-अवेयर datetime के साथ काम करते समय, डेलाइट सेविंग टाइम (DST) जटिलता ला सकता है—खासकर जब घड़ियाँ आगे या पीछे होती हैं।
उपयुक्त टाइमज़ोन असाइन करने पर zoneinfo और pytz जैसी लाइब्रेरीज़ DST ट्रांज़िशन को स्वतः संभालती हैं:
from datetime import datetime
from zoneinfo import ZoneInfo
# Before and after DST starts
before_dst = datetime(2023, 3, 12, 1, 30, tzinfo=ZoneInfo("America/New_York"))
after_dst = datetime(2023, 3, 12, 3, 30, tzinfo=ZoneInfo("America/New_York"))
print(before_dst)
print(after_dst)
इससे सुनिश्चित होता है कि DST बदलावों के दौरान भी datetime गणनाएँ सटीक रहें।
Datetime रूपांतरण के लिए pandas का उपयोग
हालाँकि Python का बिल्ट-इन datetime मॉड्यूल शक्तिशाली है, कई डेटा वैज्ञानिक pandas लाइब्रेरी को datetime रूपांतरणों के लिए पसंद करते हैं, क्योंकि यह सरल है और DataFrames का उपयोग करके पूरी तारीख़ों की कॉलम को कुशलतापूर्वक संभालता है।
import pandas as pd
# Converting a column of strings to datetime objects
date_series = pd.to_datetime(['2023-02-28', '2023-03-01', '2023-03-02'])
print(date_series)
Pandas स्वतः फ़ॉर्मेट का अनुमान लगाता है और सामान्य असंगतियों को सहजता से संभालता है, जिससे टेबुलर डेटा के साथ काम करते समय यह पसंदीदा विकल्प बन जाता है। अधिक जानने के लिए हमारा Data Preparation with pandas गाइड देखें।
strftime() के साथ datetime ऑब्जेक्ट्स को स्ट्रिंग्स में फ़ॉर्मेट करना
एक बार जब आप स्ट्रिंग्स को datetime ऑब्जेक्ट्स में बदलकर आवश्यक ऑपरेशंस कर लें, तो आपको उन्हें फिर से स्ट्रिंग्स में बदलने की आवश्यकता हो सकती है। इसके लिए आप datetime.strftime() का उपयोग कर सकते हैं।
from datetime import datetime
now = datetime.now()
formatted = now.strftime('%Y-%m-%d %H:%M:%S')
print(formatted)
यह मेथड आपको नियंत्रित करता है कि आपका datetime ऑब्जेक्ट स्ट्रिंग रूप में कैसे प्रदर्शित हो।
सामान्य strptime() त्रुटियों का समस्या निवारण
यहाँ कुछ सामान्य त्रुटियाँ हैं जिनका आप सामना कर सकते हैं और उन्हें कैसे ठीक करें। Python में exception हैंडलिंग पर अधिक जानकारी के लिए हमारा समर्पित ट्यूटोरियल देखें:
ValueError: time data 'date_string' does not match format '%Y-%m-%d %H:%M:%S'
सबसे आम त्रुटि तब होती है जब इनपुट स्ट्रिंग फ़ॉर्मेट स्ट्रिंग से मेल नहीं खाती। कृपया जाँचें कि इनपुट स्ट्रिंग और फ़ॉर्मेट स्ट्रिंग बिल्कुल मेल खाते हों।
import datetime
# When using 4-digit year format but input has 2-digit year
date_str = '23-03-01'
date_obj = datetime.datetime.strptime(date_str, '%Y-%m-%d') # Wrong: %Y expects 4 digits
# Raises ValueError: time data '23-03-01' does not match format '%Y-%m-%d'
# When format doesn't match separator in string
time_str = '08:30:00'
time_obj = datetime.datetime.strptime(time_str, '%H-%M-%S') # Wrong: using - instead of :
# Raises ValueError: time data '08:30:00' does not match format '%H-%M-%S'
TypeError: strptime() argument 1 must be str, not 'int'
अगली आम त्रुटि तब होती है जब आप datetime.strptime() या time.strptime() को स्ट्रिंग के बजाय इंटिजर पास करते हैं। सुनिश्चित करें कि आप फ़ंक्शन को जो भी मान पास कर रहे हैं, वे स्ट्रिंग्स हों।
# Example 1: Integer instead of string
date_int = 20230301
date_obj = datetime.datetime.strptime(date_int, '%Y%m%d')
# Raises TypeError: strptime() argument 1 must be str, not int
# Example 2: List instead of string
date_list = [2023, 3, 1]
date_obj = datetime.datetime.strptime(date_list, '%Y-%m-%d')
# Raises TypeError: strptime() argument 1 must be str, not list
ValueError: unconverted data remains: ':00'
यह त्रुटि तब होती है जब इनपुट स्ट्रिंग में कुछ अतिरिक्त अक्षर बचे रह जाते हैं जो फ़ॉर्मेट स्ट्रिंग से मेल नहीं खाते। उदाहरण के लिए, यदि फ़ॉर्मेट स्ट्रिंग केवल वर्ष, माह और दिन निर्दिष्ट करती है, लेकिन इनपुट स्ट्रिंग में दिन का समय भी शामिल है, तो यह त्रुटि होगी। इस त्रुटि को डिबग करने के लिए सुनिश्चित करें कि फ़ॉर्मेट स्ट्रिंग पूरे इनपुट स्ट्रिंग से मेल खाती हो।
# when input string contains time of day
date_str = '2023-03-01 12:30:00'
date_obj = datetime.datetime.strptime(date_str, '%Y-%m-%d')
# Raises ValueError: unconverted data remains: 12:30:00
# When input string contains extra characters
date_str = '2023-03-01T00:00:00Z'
date_obj = datetime.datetime.strptime(date_str, '%Y-%m-%d')
# Raises ValueError: unconverted data remains: T00:00:00Z
निष्कर्ष
यह कहना सुरक्षित है कि datetime.strptime() मेथड स्ट्रिंग्स को Python में datetime ऑब्जेक्ट्स में बदलने का एक लचीला और शक्तिशाली तरीका प्रदान करता है और इसे तारीख़ और समय के कई फ़ॉर्मेट्स को संभालने के लिए उपयोग किया जा सकता है। बाद में संदर्भ के लिए हमारा Dates and Times चीटशीट क्यों न ले लें?
तारीख़ों और समय को समझने के बाद, अगला कदम किसी प्रोजेक्ट में उनका अभ्यास करना है। हम सलाह देते हैं कि आप इनमें से किसी एक को चुनें और अपने सीखने को मजबूत करें:
हम मानते हैं कि वास्तविक दुनिया में तारीख़ और समय डेटा जटिल होता है, लेकिन आपको केवल अपनी डेटा में मौजूद प्रत्येक प्रकार की तारीख़ और समय के पीछे के फ़ॉर्मेट और पैटर्न को समझना है और उपलब्ध लाइब्रेरीज़ का समझदारी से उपयोग करना है।
FAQs
मैं एक ही डेटासेट में मिश्रित तारीख़ फ़ॉर्मेट वाली स्ट्रिंग्स को कैसे संभाल सकता/सकती हूँ?
जब ऐसे डेटासेट्स के साथ काम कर रहे हों जिनमें मिश्रित तारीख़ फ़ॉर्मेट शामिल हों, तो आप Python के dateutil मॉड्यूल का उपयोग कर सकते हैं। dateutil.parser.parse() फ़ंक्शन datetime.strptime() की तुलना में अधिक लचीला है क्योंकि यह बिना किसी पूर्वनिर्धारित फ़ॉर्मेट स्ट्रिंग के स्वतः कई प्रकार के तारीख़ फ़ॉर्मेट का पता लगाकर उन्हें पार्स कर सकता है:
from dateutil.parser import parse
date_str1 = '2023-03-01'
date_str2 = 'March 1, 2023'
date_obj1 = parse(date_str1)
date_obj2 = parse(date_str2)
print(date_obj1) # Output: 2023-03-01 00:00:00
print(date_obj2) # Output: 2023-03-01 00:00:00क्या मैं अलग-अलग टाइम ज़ोन्स को ध्यान में रखते हुए स्ट्रिंग्स को datetime ऑब्जेक्ट्स में बदल सकता/सकती हूँ?
हाँ, आप datetime के साथ pytz लाइब्रेरी का उपयोग करके टाइम ज़ोन को संभाल सकते हैं। पहले, स्ट्रिंग को datetime ऑब्जेक्ट में बदलें, और फिर pytz.timezone() का उपयोग करके टाइम ज़ोन संलग्न करें:
from datetime import datetime
import pytz
date_str = '2023-03-01 14:30:00'
date_format = '%Y-%m-%d %H:%M:%S'
date_obj = datetime.strptime(date_str, date_format)
# Set time zone
timezone = pytz.timezone('US/Eastern')
date_obj_tz = timezone.localize(date_obj)
print(date_obj_tz) # Output: 2023-03-01 14:30:00-05:00datetime.strptime() और datetime.fromisoformat() में क्या अंतर है?
datetime.strptime() आपको गैर-मानक या विविध तारीख़ फ़ॉर्मेट्स को पार्स करने के लिए कस्टम फ़ॉर्मेट स्ट्रिंग निर्दिष्ट करने देता है।
datetime.fromisoformat() विशेष रूप से ISO 8601 फ़ॉर्मेटेड डेट स्ट्रिंग्स (उदा., '2023-03-01T14:30:00') को पार्स करने के लिए बनाया गया है। यदि आपकी स्ट्रिंग्स सख्ती से ISO 8601 मानक का पालन करती हैं, तो इसे उपयोग करना सरल है:
from datetime import datetime
iso_date_str = '2023-03-01T14:30:00'
date_obj = datetime.fromisoformat(iso_date_str)
print(date_obj) # Output: 2023-03-01 14:30:00मैं Python में किसी datetime ऑब्जेक्ट को वापस स्ट्रिंग में कैसे बदलूँ?
strftime() मेथड का उपयोग करके किसी datetime ऑब्जेक्ट को वापस स्ट्रिंग में कन्वर्ट करें। आउटपुट कैसा दिखना चाहिए, यह बताने के लिए एक फ़ॉर्मेट स्ट्रिंग पास करें:
from datetime import datetime
dt = datetime(2023, 3, 1, 14, 30)
date_string = dt.strftime('%Y-%m-%d %H:%M:%S')
print(date_string) # Output: 2023-03-01 14:30:00फ़ॉर्मेट कोड वही हैं जो strptime() के साथ उपयोग होते हैं, जिससे स्ट्रिंग्स और datetime ऑब्जेक्ट्स के बीच राउंड-ट्रिप करना आसान हो जाता है।
Python में strptime() और strftime() में क्या अंतर है?
strptime() और strftime() परस्पर-विपरीत ऑपरेशन हैं:
strptime()("string parse time") स्ट्रिंग को datetime ऑब्जेक्ट में बदलता है। यह स्ट्रिंग और फ़ॉर्मेट को आर्ग्यूमेंट्स के रूप में लेता है।strftime()("string format time") datetime ऑब्जेक्ट को स्ट्रिंग में बदलता है। यह निर्दिष्ट फ़ॉर्मेट स्ट्रिंग के अनुसार datetime को फ़ॉर्मेट करता है।
सहायक स्मरण: strptime() स्ट्रिंग्स को parse करता है, जबकि strftime() स्ट्रिंग्स में format करता है।
एक वरिष्ठ डेटा वैज्ञानिक के रूप में, मैं बड़े पैमाने पर मशीन‑लर्निंग समाधान डिज़ाइन, विकसित और परिनियोजित करता/करती हूँ ताकि व्यवसाय बेहतर डेटा‑आधारित निर्णय ले सकें। डेटा साइंस लेखक के रूप में, मैं अपने सीख, करियर सलाह, और गहन व्यावहारिक ट्यूटोरियल साझा करता/करती हूँ।
