मेरे पास उनके स्थान डेटा वाले लोगों का एक विशाल डेटासेट है। मेरे मॉड्यूल में से एक केवल इस डेटासेट के माध्यम से जाता है और टाइमज़ोन पर स्थान डेटा मैप करने के लिए मेरे डेटाबेस में एक टेबल उत्पन्न करता है। यह मॉड्यूल geocoders, tzwhere, और puts.timezone का उपयोग करता है। उसके बाद, जब भी व्यवस्थापक इन लोगों को ईमेल भेजना चाहता है, तो मेरा Django एप्लिकेशन प्रत्येक व्यक्ति के लिए वर्तमान समय की पहचान करने के लिए उस टाइमज़ोन मैपिंग तालिका का उपयोग करता है और व्यवस्थापक को रिपोर्ट करता है कि क्या उन्हें ईमेल भेजने का अच्छा समय नहीं है।शहर और राज्य में पाइथन वर्तमान समय, या देश
स्थान डेटा में शहर और राज्य या देश के नाम शामिल हैं।
इस प्रयोजन के लिए, मैं निम्नलिखित चार पुस्तकालयों संयुक्त:
from datetime import datetime
from geopy import geocoders
from tzwhere import tzwhere
from pytz import timezone
आदेश समय क्षेत्र मानचित्रण तालिका बनाने के लिए, मेरी मॉड्यूल निम्न नमूना कोड के लिए एक ऐसी ही बात करता है:
g = geocoders.GoogleV3()
tz = tzwhere.tzwhere()
locationList = ["Sackville, Canada", "Romania", "Mannheim, Germany", "New Delhi, India", "Trier, Germany", "Basel, Switzerland", "Bruxelles/Brussel, Belgium"]
for location in locationList:
place, (lat, lng) = g.geocode(location)
timeZoneStr = tz.tzNameAt(lat, lng)
timeZoneObj = timezone(timeZoneStr)
# Store timeZoneObj in the timezone mapping table.
फिर, प्रत्येक बार जब व्यवस्थापक एक ईमेल भेजना चाहता है, तो Django आवेदन प्रत्येक व्यक्ति के टाइमज़ोन के माध्यम से जाता है और वर्तमान क्षेत्र को अपने क्षेत्र में पहचानता है। एक नमूना कोड इस प्रकार है:
# for each person:
# find the location and timezoneObj data for this person in the database.
now_time = datetime.now(timezoneObj)
print now_time
यहाँ आउटपुट है:
Sackville, Canada : 2015-06-26 22:00:18.131000-03:00
Romania : 2015-06-27 04:00:18.240000+03:00
Mannheim, Germany : 2015-06-27 03:00:18.371000+02:00
New Delhi, India : 2015-06-27 06:30:18.531000+05:30
Trier, Germany : 2015-06-27 03:00:18.656000+02:00
Basel, Switzerland : 2015-06-27 03:00:18.812000+02:00
Bruxelles/Brussel, Belgium : 2015-06-27 03:00:18.921000+02:00
वहाँ यह करने के लिए किसी भी अधिक कुशल तरीका है?
क्या आपको पता है 'locationlist' समय से आगे है, की तर्ज पर कुछ और प्रयास करें? – IronManMark20
हां। मेरे पास सभी स्थान डेटा सहित एक सीएसवी फ़ाइल है, लेकिन दुर्भाग्यवश स्थान डेटा मानक नहीं है। जैसा कि आप उदाहरण में देख सकते हैं, उनमें से कुछ शहर और राज्य हैं, और अन्य सिर्फ देश के नाम हैं। देश के नामों के मामले में, वे आम तौर पर छोटे देश होते हैं। मैंने मैन्युअल रूप से जांच की और मुझे देशों के संदर्भ में बहुत यकीन है, उनके पास कई समय-क्षेत्र नहीं हैं। – 1man
संबंधित: [पायथन/डीजेगो में शहर से टाइमज़ोन प्राप्त करें] (http://stackoverflow.com/q/16505501/4279) – jfs