पायथन में स्ट्रिंग्स को डेटाटाइम में कनवर्ट करना

परिचय

डेटा को विभिन्न रूपों में प्रस्तुत किया जा सकता है - और दिनांक और समय का प्रतिनिधित्व करने का एक विश्वसनीय तरीका है तार. हालांकि, अंकगणितीय तरीके से इन तारीखों और समय के साथ काम करने के लिए (जैसे समय के अंतर की गणना करना, समय जोड़ना या हटाना, आदि) - हमें उन्हें एक में बदलने की जरूरत है datetime वस्तु।

के सबसे आम स्रोतों में से एक है स्ट्रिंग-स्वरूपित डेटाटाइम्स REST API हैं जो अज्ञेयवादी तार लौटाते हैं, जिन्हें हम फिर अन्य स्वरूपों में बदल सकते हैं।

इसके अतिरिक्त - जब डेटाटाइम ऑब्जेक्ट्स के साथ काम करने की बात आती है तो टाइमज़ोन एक आम सिरदर्द होता है, इसलिए हमें कनवर्ट करते समय भी इसके बारे में सोचना होगा।

इस मार्गदर्शिका में - हम देखेंगे कि किसी स्ट्रिंग दिनांक/समय को a में कैसे बदला जाए datetime पायथन में ऑब्जेक्ट, बिल्ट-इन का उपयोग करना datetime मॉड्यूल, बल्कि तृतीय-पक्ष मॉड्यूल जैसे dateutil, arrow और माया, टाइमज़ोन के लिए लेखांकन।

डेटाटाइम का उपयोग करके स्ट्रिंग्स को परिवर्तित करना

RSI दिनांक और समय मॉड्यूल में तीन अलग-अलग ऑब्जेक्ट प्रकार होते हैं: date, time, तथा datetimedate वस्तु दिनांक रखती है, time समय रखता है, और datetime दिनांक और समय दोनों रखता है!

import datetime
print(f'Current date/time: {datetime.datetime.now()}')

इस कोड को चलाने से परिणाम होगा:

Current date/time: 2022-12-01 10:27:03.929149

जब कोई कस्टम स्वरूपण नहीं दिया जाता है, तो डिफ़ॉल्ट स्ट्रिंग प्रारूप का उपयोग किया जाता है, अर्थात "2022-12-01 10:27:03.929149" का प्रारूप है आईएसओ 8601 प्रारूप (YYYY-MM-DDTHH:MM:SS.mmmmmm). यदि हमारा इनपुट स्ट्रिंग बनाने के लिए a datetime ऑब्जेक्ट समान ISO 8601 स्वरूप में है या यदि आप उस स्वरूप को जानते हैं जो आपको पहले प्राप्त होगा, तो हम इसे आसानी से पार्स कर सकते हैं datetime वस्तु:

import datetime

date_time_str = '2022-12-01 10:27:03.929149'

date_time_obj = datetime.datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S.%f')

print('Date:', date_time_obj.date())
print('Time:', date_time_obj.time())
print('Date-time:', date_time_obj)

इसे चलाने से दिनांक, समय और दिनांक-समय प्रिंट होगा:

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149

यहां, हम उपयोग करते हैं strptime() विधि, जो दो तर्कों को स्वीकार करती है:

  • स्ट्रिंग-स्वरूपित दिनांक
  • पहले तर्क का प्रारूप

इस तरह के प्रारूप को निर्दिष्ट करने से पार्सिंग बहुत तेज हो जाती है datetime प्रारूप को अपने दम पर आज़माने और उसकी व्याख्या करने की आवश्यकता नहीं है, जो कम्प्यूटेशनल रूप से बहुत अधिक महंगा है। वापसी मूल्य प्रकार का है datetime.

हमारे उदाहरण में, "2022-12-01 10:27:03.929149" इनपुट स्ट्रिंग है और "%Y-%m-%d %H:%M:%S.%f" हमारी दिनांक स्ट्रिंग का प्रारूप है। जो लौट आया datetime मान के रूप में संग्रहीत किया जाता है date_time_obj.

चूंकि यह ए datetime वस्तु, हम कॉल कर सकते हैं date() और time() सीधे उस पर तरीके। जैसा कि आप आउटपुट से देख सकते हैं, यह इनपुट स्ट्रिंग के 'दिनांक' और 'समय' भाग को प्रिंट करता है!

प्रारूप टोकन

यह समझने में एक पल लगाने लायक है प्रारूप टोकन - "%Y-%m-%d %H:%M:%S.%f" पहले से।

प्रत्येक टोकन दिनांक-समय के एक अलग हिस्से का प्रतिनिधित्व करता है, जैसे दिन, महीना, वर्ष, महीने का दिन या सप्ताह, आदि। समर्थित टोकन की सूची विभिन्न स्वरूपण को सक्षम करने के लिए पर्याप्त विस्तृत है। आमतौर पर इस्तेमाल होने वाले कुछ, जिनका हमने पहले भी इस्तेमाल किया है, वे हैं:

  • %Y: वर्ष (4 अंक)
  • %m: महीना
  • %d: महीने का दिन
  • %H: घंटा (24 घंटे)
  • %M: मिनट
  • %S: सेकंड
  • %f: माइक्रोसेकंड

नोट: वर्ष को छोड़कर, ये सभी टोकन शून्य-गद्देदार होने की उम्मीद है (अर्थात अगस्त 8वां महीना है, और शून्य-गद्देदार है) 08).

स्ट्रिंग को विभिन्न डेटाटाइम प्रारूप में कनवर्ट करने के लिए strptime() प्रारूप टोकन का उपयोग करना

यदि एक स्ट्रिंग का प्रारूप ज्ञात है, तो इसे आसानी से पार्स किया जा सकता है datetime वस्तु का उपयोग strptime(). आइए एक गैर-तुच्छ उदाहरण देखें जो एक प्रारूप से दूसरे प्रारूप में अनुवाद करता है:

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime(date_time_str, '%b %d %Y %I:%M%p')

print('Date:', date_time_obj.date())
print('Time:', date_time_obj.time())
print('Date-time:', date_time_obj)

इनपुट स्ट्रिंग एक प्रारूप की थी - "जुलाई 17 2022 9:20 पूर्वाह्न"। इस प्रारूप को जानने के बाद, हमने घटक तत्वों को आईएसओ 8601 प्रारूप में मैप किया और इसे एक में परिवर्तित कर दिया datetime वस्तु:

Date: 2022-07-17
Time: 09:20:00
Date-time: 2022-07-17 09:20:00

यहां सामान्य स्ट्रिंग-प्रारूपित डेटाटाइम और उनके संबंधित स्वरूपों की एक छोटी सूची दी गई है strptime():

"Jun 28 2018 at 7:40AM" -> "%b %d %Y at %I:%M%p"
"September 18, 2017, 22:19:55" -> "%B %d, %Y, %H:%M:%S"
"Sun,05/12/99,12:30PM" -> "%a,%d/%m/%y,%I:%M%p"
"Mon, 21 March, 2015" -> "%a, %d %B, %Y"
"2018-03-12T10:12:45Z" -> "%Y-%m-%dT%H:%M:%SZ"

आप किसी भी प्रारूप की दिनांक-समय स्ट्रिंग को पार्स कर सकते हैं - जब तक आप प्राप्त होने वाले इनपुट के लिए प्रारूप टोकन की सही स्ट्रिंग का उपयोग करते हैं।

टाइमज़ोन के साथ स्ट्रिंग को डेटाटाइम में कनवर्ट करें

टाइमज़ोन से निपटने के दौरान दिनांक-समय को संभालना अधिक जटिल हो जाता है। उपरोक्त सभी उदाहरण अभी तक समयक्षेत्र के लिए सरल हैं। इन्हें इस रूप में जाना जाता है बेवकूफ डेटाटाइम ऑब्जेक्ट्स.

हालांकि, datetime ऑब्जेक्ट्स में टाइमज़ोन से संबंधित डेटा को स्टोर करने के लिए बिल्कुल एक फ़ील्ड होता है - tzinfo:

import datetime as dt
dtime = dt.datetime.now()

print(dtime) 
print(dtime.tzinfo) 

RSI tzinfo क्षेत्र एक होना है datetime.timezone ऑब्जेक्ट, टाइमज़ोन जानकारी को दर्शाता है। यह है None डिफ़ॉल्ट रूप से, और यह दर्शाता है कि डेटाटाइम ऑब्जेक्ट टाइमज़ोन-अनुभवहीन है। टाइमज़ोन को संभालने के लिए एक बहुत ही सामान्य बाहरी लाइब्रेरी है pytz। आप सेट कर सकते हैं PyTz वस्तुओं के रूप में tzinfo मैदान भी।

यदि आपके पास यह पहले से नहीं है - इसे इसके माध्यम से स्थापित करें:

$ pip install pytz

PyTz का उपयोग करके, हम UTC जैसे टाइम-ज़ोन जागरूक डेटाटाइम के लिए एक एंकर बना सकते हैं:

import datetime as dt
import pytz

dtime = dt.datetime.now(pytz.utc)

print(dtime)
print(dtime.tzinfo)

आउटपुट:

2022-12-01 02:07:41.960920+00:00
UTC

यह अब 11AM नहीं, बल्कि 2AM है, क्योंकि हमने समयक्षेत्र कुछ घंटे पहले सेट कर दिया है! यह समयक्षेत्र बदल देता है तारीख का।

+00:00 वैश्विक समन्वय एंकर के रूप में प्रदर्शित समय और UTC समय के बीच का अंतर है। हमने यूटीसी में रहने का समय निर्धारित किया है, इसलिए ऑफ़सेट है 00:00. यह एक है समयक्षेत्र-जागरूक वस्तु.

इसी तरह, हम उसी डेटाटाइम की व्याख्या को टाइमज़ोन के बीच स्विच कर सकते हैं। आइए एक स्ट्रिंग को कनवर्ट करें, जैसे "2022-06-29 17:08:00" को डेटाटाइम में और फिर स्थानीयकरण इसे "अमेरिका/न्यू_यॉर्क" समयक्षेत्र के लिए:

import datetime as dt
import pytz

date_time_str = '2022-06-29 17:08:00'
date_time_obj = dt.datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S')

timezone = pytz.timezone('America/New_York')
timezone_date_time_obj = timezone.localize(date_time_obj)

print(timezone_date_time_obj)
print(timezone_date_time_obj.tzinfo)

नोट: स्थानीयकरण एक टाइमज़ोन-बेवकूफ डेटाटाइम को टाइमज़ोन-जागरूक डेटाटाइम में बदल देता है, और टाइमज़ोन को स्थानीय के रूप में मानता है। इस प्रकार दिनांक समय वही रहता है, लेकिन अलग-अलग समय क्षेत्र दिए जाने पर, यह समय क्षेत्र से अनबाउंड समय में एक ही बिंदु का प्रतिनिधित्व नहीं करता है।

हमें वही मिलता है दिनांक समय मान, द्वारा ऑफसेट -04: 00 UTC समय की तुलना में:

2022-06-29 17:08:00-04:00
America/New_York

टोक्यो में 17:08 नहीं है न्यूयॉर्क में 17:08 के समान समय। टोक्यो में 17:08 न्यूयॉर्क में 3:08 है।

सभी टाइमज़ोन कोड/उपनाम कैसे खोजें?

सभी उपलब्ध समय क्षेत्रों को खोजने के लिए, निरीक्षण करें all_timezones क्षेत्र, जो सभी उपलब्ध समयक्षेत्रों की एक सूची है:

print(f'There are {len(pytz.all_timezones)} timezones in PyTzn')
for time_zone in pytz.all_timezones:
   print(time_zone)

सर्वोत्तम प्रथाओं, उद्योग-स्वीकृत मानकों और शामिल चीट शीट के साथ, Git सीखने के लिए व्यावहारिक मार्गदर्शिका देखें। Googling Git कमांड को रोकें और वास्तव में सीखना यह!

There are 594 timezones in PyTz

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
...

डेटटाइम का टाइमज़ोन बदलें

हम टाइमज़ोन-जागरूक के टाइमज़ोन को परिवर्तित कर सकते हैं datetime कुछ टाइमज़ोन के लेंस के माध्यम से एक टाइमज़ोन-भोले डेटाटाइम को स्थानांतरित करने के बजाय, एक क्षेत्र से दूसरे क्षेत्र में वस्तु।

यह स्थानीयकरण से अलग है, क्योंकि स्थानीयकरण समय में एक अलग बिंदु का प्रतिनिधित्व करता है, लेकिन किसी वस्तु के समय क्षेत्र को परिवर्तित करना एक अलग लेंस के माध्यम से समय में एक ही बिंदु का प्रतिनिधित्व करता है:

import datetime as dt
import pytz

timezone_nw = pytz.timezone('America/New_York')
nw_datetime_obj = dt.datetime.now(timezone_nw)

timezone_london = pytz.timezone('Europe/London')
london_datetime_obj = nw_datetime_obj.astimezone(timezone_london)


print('America/New_York:', nw_datetime_obj)
print('Europe/London:', london_datetime_obj)

सबसे पहले, हमने वर्तमान समय के साथ एक डेटाटाइम ऑब्जेक्ट बनाया और इसे "अमेरिका/न्यू_यॉर्क" टाइमज़ोन के रूप में सेट किया। फिर का उपयोग करना astimezone() विधि, हमने इसे परिवर्तित कर दिया है datetime "यूरोप/लंदन" समयक्षेत्र के लिए। दोनों datetimeयूटीसी ऑफसेट का उपयोग उनके बीच एक संदर्भ लिंक के रूप में विभिन्न मूल्यों को प्रिंट करेगा:

America/New_York: 2022-11-30 21:24:30.123400-05:00
Europe/London: 2022-12-01 02:24:30.123400+00:00

2:24 लंदन में अगले दिन is न्यूयॉर्क में पिछले दिन 21:24 के समान समय लंदन के रूप में 5h आगे है।

अपेक्षानुसार, दिनांक-समय भिन्न हैं क्योंकि उनमें लगभग 5 घंटे का अंतर है।

तीसरे पक्ष के पुस्तकालयों का उपयोग करके स्ट्रिंग को डेटाटाइम में बदलें

पायथन के datetime मॉड्यूल सभी विभिन्न प्रकार के स्ट्रिंग्स को a में बदल सकता है datetime वस्तु। लेकिन मुख्य समस्या यह है कि ऐसा करने के लिए आपको उचित स्वरूपण कोड स्ट्रिंग बनाने की आवश्यकता है strptime() समझ सकता हूं। इस स्ट्रिंग को बनाने में समय लगता है और इससे कोड को पढ़ना कठिन हो जाता है।

इसके बजाय, हम इसे आसान बनाने के लिए अन्य तृतीय-पक्ष लाइब्रेरी का उपयोग कर सकते हैं।

कुछ मामलों में इन तृतीय-पक्ष पुस्तकालयों में दिनांक-समय में हेरफेर करने और तुलना करने के लिए बेहतर अंतर्निहित समर्थन भी होता है, और कुछ में अंतर्निहित टाइमज़ोन भी होते हैं, इसलिए आपको अतिरिक्त PyTz पैकेज शामिल करने की आवश्यकता नहीं होती है।

आइए निम्नलिखित अनुभागों में इनमें से कुछ पुस्तकालयों पर एक नज़र डालें।

डेट्यूटिल के साथ स्ट्रिंग को डेटटाइम में बदलें

RSI डेटुटिल मॉड्यूल का विस्तार है datetime मापांक। एक फायदा यह है कि स्ट्रिंग को पार्स करने के लिए हमें कोई पार्सिंग कोड पास करने की आवश्यकता नहीं है!

पायथन का उपयोग करके एक प्रारूप टोकन के बिना स्वचालित रूप से एक स्ट्रिंग को डेटाटाइम में बदलने के लिए dateutil:

from dateutil.parser import parse
datetime = parse('2018-06-29 22:21:41')

print(datetime)

इस parse फ़ंक्शन स्वचालित रूप से स्ट्रिंग को पार्स करेगा! आपको कोई प्रारूप स्ट्रिंग शामिल करने की आवश्यकता नहीं है। आइए विभिन्न प्रकार के तारों का उपयोग करके पार्स करने का प्रयास करें dateutil:

from dateutil.parser import parse

date_array = [
    '2018-06-29 08:15:27.243860',
    'Jun 28 2018 7:40AM',
    'Jun 28 2018 at 7:40AM',
    'September 18, 2017, 22:19:55',
    'Sun, 05/12/1999, 12:30PM',
    'Mon, 21 March, 2015',
    '2018-03-12T10:12:45Z',
    '2018-06-29 17:08:00.586525+00:00',
    '2018-06-29 17:08:00.586525+05:00',
    'Tuesday , 6th September, 2017 at 4:30pm'
]

for date in date_array:
    print('Parsing: ' + date)
    dt = parse(date)
    print(dt.date())
    print(dt.time())
    print(dt.tzinfo)
    print('n')

आउटपुट:

Parsing: 2018-06-29 08:15:27.243860
2018-06-29
08:15:27.243860
None

Parsing: Jun 28 2018 7:40AM
2018-06-28
07:40:00
None

Parsing: Jun 28 2018 at 7:40AM
2018-06-28
07:40:00
None

Parsing: September 18, 2017, 22:19:55
2017-09-18
22:19:55
None

Parsing: Sun, 05/12/1999, 12:30PM
1999-05-12
12:30:00
None

Parsing: Mon, 21 March, 2015
2015-03-21
00:00:00
None

Parsing: 2018-03-12T10:12:45Z
2018-03-12
10:12:45
tzutc()

Parsing: 2018-06-29 17:08:00.586525+00:00
2018-06-29
17:08:00.586525
tzutc()

Parsing: 2018-06-29 17:08:00.586525+05:00
2018-06-29
17:08:00.586525
tzoffset(None, 18000)

Parsing: Tuesday , 6th September, 2017 at 4:30pm
2017-09-06
16:30:00
None

आप देख सकते हैं कि लगभग किसी भी प्रकार की स्ट्रिंग को आसानी से पार्स किया जा सकता है dateutil मॉड्यूल।

जबकि यह सुविधाजनक है, पहले से याद रखें कि प्रारूप की भविष्यवाणी करने से कोड बहुत धीमा हो जाता है, इसलिए यदि आपके कोड को उच्च प्रदर्शन की आवश्यकता है तो यह आपके आवेदन के लिए सही दृष्टिकोण नहीं हो सकता है।

माया के साथ स्ट्रिंग को डेटटाइम में बदलें

माया स्ट्रिंग को पार्स करना और टाइमज़ोन बदलना भी बहुत आसान बनाता है। पायथन की माया के साथ एक स्ट्रिंग को आसानी से बदलने के लिए:

import maya

dt = maya.parse('2018-04-29T17:45:25Z').datetime()
print(dt.date())
print(dt.time())
print(dt.tzinfo)

आउटपुट:

2018-04-29
17:45:25
UTC

समय को एक अलग समय क्षेत्र में परिवर्तित करने के लिए:

import maya

dt = maya.parse('2018-04-29T17:45:25Z').datetime(to_timezone='America/New_York', naive=False)
print(dt.date())
print(dt.time())
print(dt.tzinfo)

आउटपुट:

2018-04-29
13:45:25
America/New_York

अब उपयोग करना इतना आसान नहीं है? आइए आजमाते हैं maya स्ट्रिंग्स के उसी सेट के साथ जिसका हमने उपयोग किया है dateutil:

import maya

date_array = [
    '2018-06-29 08:15:27.243860',
    'Jun 28 2018 7:40AM',
    'Jun 28 2018 at 7:40AM',
    'September 18, 2017, 22:19:55',
    'Sun, 05/12/1999, 12:30PM',
    'Mon, 21 March, 2015',
    '2018-03-12T10:12:45Z',
    '2018-06-29 17:08:00.586525+00:00',
    '2018-06-29 17:08:00.586525+05:00',
    'Tuesday , 6th September, 2017 at 4:30pm'
]

for date in date_array:
    print('Parsing: ' + date)
    dt = maya.parse(date).datetime()
    print(dt)
    
    
    
    

आउटपुट:

Parsing: 2018-06-29 08:15:27.243860
2018-06-29 08:15:27.243860+00:00

Parsing: Jun 28 2018 7:40AM
2018-06-28 07:40:00+00:00

Parsing: Jun 28 2018 at 7:40AM
2018-06-28 07:40:00+00:00

Parsing: September 18, 2017, 22:19:55
2017-09-18 22:19:55+00:00

Parsing: Sun, 05/12/1999, 12:30PM
1999-05-12 12:30:00+00:00

Parsing: Mon, 21 March, 2015
2015-03-21 00:00:00+00:00

Parsing: 2018-03-12T10:12:45Z
2018-03-12 10:12:45+00:00

Parsing: 2018-06-29 17:08:00.586525+00:00
2018-06-29 17:08:00.586525+00:00

Parsing: 2018-06-29 17:08:00.586525+05:00
2018-06-29 12:08:00.586525+00:00

Parsing: Tuesday , 6th September, 2017 at 4:30pm
2017-09-06 16:30:00+00:00

जैसा कि आप देख सकते हैं, सभी दिनांक स्वरूपों को सफलतापूर्वक पार्स कर दिया गया था!

यदि हम समयक्षेत्र की जानकारी प्रदान नहीं करते हैं, तो यह स्वचालित रूप से इसे UTC में बदल देता है। इसलिए, यह ध्यान रखना महत्वपूर्ण है कि हम चाहिए प्रदान करना to_timezone और naive यदि समय यूटीसी में नहीं है तो पैरामीटर।

एरो के साथ स्ट्रिंग को डेटटाइम में बदलें

तीर पायथन में डेटाटाइम से निपटने के लिए एक और लाइब्रेरी है। और पहले की तरह maya, यह स्वचालित रूप से डेटाटाइम प्रारूप का भी पता लगाता है। व्याख्या करने के बाद, यह एक पायथन लौटाता है datetime वस्तु से arrow वस्तु।

पायथन का उपयोग करके आसानी से एक स्ट्रिंग को डेटाइम में बदलने के लिए arrow:

import arrow

dt = arrow.get('2018-04-29T17:45:25Z')
print(dt.date())
print(dt.time())
print(dt.tzinfo)

आउटपुट:

2018-04-29
17:45:25
tzutc()

और यहां बताया गया है कि आप इसका उपयोग कैसे कर सकते हैं arrow का उपयोग करके समयक्षेत्रों को परिवर्तित करने के लिए to() तरीका:

import arrow

dt = arrow.get('2018-04-29T17:45:25Z').to('America/New_York')
print(dt)
print(dt.date())
print(dt.time())

आउटपुट:

2018-04-29T13:45:25-04:00
2018-04-29
13:45:25

जैसा कि आप देख सकते हैं कि दिनांक-समय स्ट्रिंग को "अमेरिका/न्यू_यॉर्क" क्षेत्र में बदल दिया गया है।

अब, हम फिर से उन्हीं स्ट्रिंग्स के सेट का उपयोग करते हैं जिनका हमने ऊपर उपयोग किया है:

import arrow

date_array = [
    '2018-06-29 08:15:27.243860',
    
    
    
    
    
    '2018-03-12T10:12:45Z',
    '2018-06-29 17:08:00.586525+00:00',
    '2018-06-29 17:08:00.586525+05:00',
    
]

for date in date_array:
    dt = arrow.get(date)
    print('Parsing: ' + date)
    print(dt)
    
    
    
    

यह कोड दिनांक-समय स्ट्रिंग्स के लिए विफल हो जाएगा जिन पर टिप्पणी की गई है, जो हमारे उदाहरणों में से आधे से अधिक है। अन्य स्ट्रिंग्स के लिए आउटपुट होगा:

Parsing: 2018-06-29 08:15:27.243860
2018-06-29T08:15:27.243860+00:00

Parsing: 2018-03-12T10:12:45Z
2018-03-12T10:12:45+00:00

Parsing: 2018-06-29 17:08:00.586525+00:00
2018-06-29T17:08:00.586525+00:00

Parsing: 2018-06-29 17:08:00.586525+05:00
2018-06-29T17:08:00.586525+05:00

टिप्पणी की गई दिनांक-समय स्ट्रिंग्स को सही ढंग से पार्स करने के लिए, आपको संबंधित पास करने की आवश्यकता होगी प्रारूप टोकन पुस्तकालय के सुराग देने के लिए कि इसे कैसे पार्स किया जाए।

निष्कर्ष

इस लेख में हमने स्ट्रिंग को a में पार्स करने के विभिन्न तरीके दिखाए हैं datetime पायथन में वस्तु। आप या तो डिफ़ॉल्ट पायथन का विकल्प चुन सकते हैं datetime पुस्तकालय या इस आलेख में वर्णित किसी भी तृतीय-पक्ष पुस्तकालय, कई अन्य के बीच।

डिफ़ॉल्ट के साथ मुख्य समस्या datetime पैकेज यह है कि हमें लगभग सभी दिनांक-समय स्ट्रिंग स्वरूपों के लिए मैन्युअल रूप से पार्सिंग कोड निर्दिष्ट करने की आवश्यकता है। इसलिए, यदि आपका स्ट्रिंग प्रारूप भविष्य में बदलता है, तो आपको संभवतः अपना कोड भी बदलना होगा। लेकिन कई तृतीय-पक्ष पुस्तकालय, जैसे कि यहां उल्लेखित हैं, इसे स्वचालित रूप से संभालते हैं।

एक और समस्या जिसका हम सामना कर रहे हैं वह है टाइमज़ोन से निपटना। उन्हें संभालने का सबसे अच्छा तरीका हमेशा अपने डेटाबेस में यूटीसी प्रारूप के रूप में समय को स्टोर करना है और फिर जरूरत पड़ने पर इसे उपयोगकर्ता के स्थानीय टाइमज़ोन में परिवर्तित करना है।

ये पुस्तकालय न केवल स्ट्रिंग्स को पार्स करने के लिए अच्छे हैं, बल्कि इनका उपयोग विभिन्न प्रकार के दिनांक-समय से संबंधित कार्यों के लिए किया जा सकता है। मैं आपको कार्यात्मकताओं के बारे में विस्तार से जानने के लिए दस्तावेज़ों को पढ़ने के लिए प्रोत्साहित करता हूँ।

समय टिकट:

से अधिक स्टैकब्यूज