2011-09-15 11 views
11

में ओल्सन टीजेड टीजेआईडी प्रारूप की कमी के लिए एक वर्कअराउंड है, मुझे हाल ही में आईसीएस फ़ाइल में एक समस्या थी जो मुझे ईमेल में मिली थी। Outlook 2010 की मेरी प्रति टाइमज़ोन को सही ढंग से पहचान नहीं पाएगी।क्या आईसीएस फ़ाइल

DTSTART;TZID=America/Los_Angeles:20110928T183000 

आउटलुक इस फ़ाइल आयात करते हैं, यह समय 6:30 बजे प्रशांत समय से 7:30 बजे प्रशांत समय के लिए बदल: यहाँ जिस तरह से है कि एक बैठक के शुरू समय ICS फ़ाइल में प्रतिनिधित्व किया गया है। कुछ प्रयोग करने के बाद मैं एक ICS फ़ाइल समय क्षेत्र प्रारूप बदलकर Outlook में सही तरीके से आयात कि प्राप्त करने में सक्षम था:

DTSTART;TZID="Pacific Time":20110928T183000 

कुछ आगे अनुसंधान मैंने पाया कि ICS file specification खुला समय क्षेत्र की पहचान के सवाल छोड़ के बाद, लेकिन पता चलता है the Olsen TZ database का उपयोग कर। ऐसा लगता है कि माइक्रोसॉफ्ट आउटलुक टीम ने इस सुझाव को अनदेखा करना चुना है।

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

नोट: मुझे पता है कि यह प्रश्न an earlier post जैसा है, लेकिन उस पोस्ट के संदर्भों की समय सीमा समाप्त हो गई है, और मुझे आश्चर्य है कि वहां कोई बेहतर समाधान है या नहीं।

+0

http://stackoverflow.com/questions/3763503/writing-ics-files-for-multiple-clients-including-google से उत्तर में लिंक अब http://icalevents.com/category/notes/ है । और आपके प्रश्न से संबंधित सबसे दिलचस्प पोस्ट http://icalevents.com/2613-what-every-developer-ought-to-now-about-timezones-wrt-calendar-files/ - लेकिन यह केवल इसके बारे में बात करता है पार्सिंग आईआईसी फाइलें (और विभिन्न टीजे आईडी), कई क्लाइंट्स को भेजते समय क्या करना है। Hrmmpf। –

उत्तर

5

पूर्ण iCalendar फ़ाइल के बिना न्याय करने के लिए मुश्किल है, लेकिन क्या आपने परिभाषित किया है कि आपके कैलेंडर फ़ाइल में VTIMEZONE घटक है जो परिभाषित करता है कि अमेरिका/लॉस_एंजेल क्या होना चाहिए?

कुछ की तरह:

BEGIN:VTIMEZONE 
TZID:America/Los_Angeles 
BEGIN:DAYLIGHT 
TZOFFSETFROM:-0800 
TZOFFSETTO:-0700 
TZNAME:PDT 
DTSTART:19700308T020000 
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU 
END:DAYLIGHT 
BEGIN:STANDARD 
TZOFFSETFROM:-0700 
TZOFFSETTO:-0800 
TZNAME:PST 
DTSTART:19701101T020000 
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU 
END:STANDARD 
END:VTIMEZONE 
+0

Egads! वह काम किया! नोट: बंद होने से पहले VTIMEZONE परिभाषा प्राप्त करना सुनिश्चित करें: VCALENDAR टैग। धन्यवाद @oberron! –

1

ICS फ़ाइल को समय क्षेत्र परिभाषा जोड़ने के बजाय, यह बेहतर हो यूटीसी अपने आप में घटना प्रारंभ/समाप्ति बार उल्लेख करना होगा। और फिर, आईसीएस फ़ाइल का उपभोक्ता - आपके मामले में दृष्टिकोण - यूटीसी (आईआईसी फाइल से) से टाइमज़ोन रूपांतरण को अंतिम उपयोगकर्ता की पसंदीदा टाइमज़ोन सेटिंग में करने में सक्षम होना चाहिए, बस अपने कैलेंडर पर मीटिंग ईवेंट प्रस्तुत करने से पहले ।

सकारात्मक: इस तरह से आप न सही समय क्षेत्र ऑफसेट (VTIMEZONE घटक) अपने आप को जोड़ने की देखभाल करने के लिए है। प्लस, आईआईसी फाइल बहुत छोटी, क्लीनर, पढ़ने में आसान है।

संदर्भ: - Google timezone handling

आशा इस मदद करता है यहां तक ​​कि गूगल लगता आईसीएस का समय-क्षेत्र इस तरह से अपने आप को संभालने किया जाना है।

+1

** विपक्ष **: लक्ष्य समय क्षेत्र के लिए सही ढंग से डेलाइट बचत परिवर्तनों को संभाल नहीं करता है। – Geoff

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