java - जावा कैलेंडर, दिनांक, और बहु-टाइमज़न अनुप्रयोग के लिए समय प्रबंधन




date calendar timezone (2)

सामान्य तौर पर भविष्य की घटनाओं का निर्धारण एक जटिल विषय है। आपको निर्धारित समय के संदर्भ में एक अंतर बनाना होगा:

  • क्या घटना समय पर एक विशिष्ट सार्वभौमिक तत्काल पर होती है? यदि हां, तो आपको UTC के मामले में ईवेंट का समय रिकॉर्ड करना चाहिए।

    उदाहरण के लिए, प्रत्येक 24 घंटों तक चलने वाला कार्य यूटीसी समय से निर्धारित होगा और स्थानीय समय तक नहीं। यह कुछ स्थानीय मध्यरात्रि पर शुरू हो सकता है, लेकिन डेलाइट सेविंग टाइम परिवर्तन प्रभावी होने पर यह स्थानीय घड़ी से 23:00 या 01:00 पर चल सकता है।

  • हालांकि, यदि घटना मनुष्यों द्वारा निर्धारित की जाती है, तो यह स्थानीय समय के अनुसार होने की संभावना है, इसलिए आपको इसे इस तरह से रिकॉर्ड करना चाहिए।

    उदाहरण के लिए, एक बैठक जिसकी 08:00 ईस्टर्न टाइम पर होती है, वह हमेशा उस स्थानीय समय में घटित होगी। सर्दियों में, यह 13:00 यूटीसी होगा, और गर्मियों में यह 12:00 यूटीसी पर होगा।

    इसलिए इस संदर्भ में, आप यूटीसी के संदर्भ में अनुसूचित प्रारंभ समय रिकॉर्ड नहीं कर सकते । यह एक बहुत ही आम गलती है, क्योंकि इंटरनेट पर एक सलाह है कि "हमेशा यूटीसी का उपयोग कर स्टोर करें" का एक टन है, जो इस परिदृश्य में गलत होगा।

    इसके बजाय, आपको दो मानों को स्टोर करना चाहिए - स्थानीय समय जैसे कि 08:00 और इसके IANA समय क्षेत्र पहचानकर्ता, जैसे America/New_York ईवेंट को शेड्यूल कैसे किया जाता है इसके आधार पर आपको पुनरावृत्ति पैटर्न या विशिष्ट तिथि भी स्टोर करने की आवश्यकता हो सकती है।

  • जावा के Calendar या Date के बजाय जोडा टाइम का उपयोग करने पर विचार करें। यह आपको कई सिरदर्दों से बचाएगा। सुनिश्चित करें कि आप जोडा टाइम दस्तावेज पढ़ते हैं और समझते हैं कि यह कैसे काम करता है।

    जोडा टाइम में सभी फ़ंक्शंस हैं जिन्हें आपको एक टाइम ज़ोन और दूसरे के बीच परिवर्तित करने की आवश्यकता होगी - जो मुझे विश्वास था कि आपके प्रश्न का मुख्य चिंता है।

  • समय क्षेत्र डेटा को नियमित रूप से अद्यतन करने के लिए जगह में एक प्रक्रिया सुनिश्चित करें अपडेट को वर्ष में कई बार धकेल दिया जाता है, क्योंकि दुनिया की सरकार अपने समय क्षेत्रों की कानूनी परिभाषाओं में बदलाव करती है। आप इसे केवल एक बार तैनात नहीं कर सकते हैं और इसके बारे में भूल सकते हैं।

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

    उदाहरण के लिए, यदि मैं एक कार्यक्रम को 2:00 पूर्वाह्न पूर्वाह्न 2:00 पूर्वाह्न, 10 मार्च, 2013 को शेड्यूल करता हूं, तो वह समय मौजूद नहीं है। क्या घटना 3:00 बजे होती है? या यह बिल्कुल नहीं होना चाहिए?

    एक और उदाहरण, यदि मैं 1:00 पूर्वाह्न पूर्वाह्न 1:00 पूर्वाह्न को एक कार्यक्रम शेड्यूल करता हूं, फिर 3 नवं, 2013 को, उस समय दो बार होता है। क्या घटना को पहले (डेलाइट टाइम) उदाहरण पर होना चाहिए? या दूसरे (मानक समय) उदाहरण पर? अथवा दोनों? क्या मुझे एक या दूसरे को मान लेना चाहिए, या मुझे उस उपयोगकर्ता से पूछना चाहिए जिसका उनका मतलब है?

    केवल आप ही तय कर सकते हैं कि क्या करना है, क्योंकि यह आपका आवेदन है लेकिन समस्या की अनदेखी करने से त्रुटियों की संभावना बढ़ जाएगी।

  • एक बार इवेंट पास हो जाने के बाद, अगर आप चाहें तो यूटीसी में रिकॉर्ड कर सकते हैं, या इसे पूर्ण स्थानीय तिथि समय और ऑफ़सेट के साथ रिकॉर्ड कर सकते हैं। या तो स्वीकार्य हैं यह एकमात्र पिछली घटनाओं के लिए ठीक काम करता है, सिर्फ भविष्य के लोगों के लिए नहीं।

मैं एक शेड्यूलिंग वेब ऐप तैयार कर रहा हूं I मैं उम्मीद करता हूं कि उपयोगकर्ताओं द्वारा कई अलग-अलग समयक्षेत्र और लोकेल में होने वाली घटनाओं को शामिल किया जाए। चुनौती इन घटनाओं की सही प्रस्तुति है

इसलिए, एक उदाहरण के रूप में:
अगर कोई उपयोगकर्ता ईएसटी समयक्षेत्र में है और एक वेबिनार घटना को देख रहा है जो पीएसटी में दूसरे उपयोगकर्ता द्वारा जोड़ा गया था, तो मैं दर्शकों के लिए स्थानीय समय में वास्तविक पीएसटी समय को परिवर्तित करना चाहता हूं। इसलिए, अगर कोई घटना 2 बजे पीएसटी के लिए निर्धारित है, तो उसे 5 बजे ईएसटी के रूप में दिखाया जाना चाहिए।

मैं भी सावधान रहना चाहता हूं कि प्रदर्शन एक हिट नहीं लेते हैं यदि हजारों घटनाएं हैं जो वास्तविक घटना के समय से दर्शकों के स्थानीय समय तक रूपांतरण की आवश्यकता हो सकती हैं।

सभी विचारों और टिप्पणियों की सराहना की जाती है
TIA


न केवल कुछ खोजबीन एनोटेशन, बल्कि आम पुस्तकालयों में बहुत सारे जावा एनोटेशन में java.lang.annotation.ElementType.PACKAGE टाइप होते हैं, जो उनके अपने java.lang.annotation.Target एनोटेशन के संभावित मानों में से एक होते java.lang.annotation.Target : उदा:

com.google.gwt.core.client.js.JsNamespace
com.querydsl.core.annotations.Config
com.sun.xml.bind.XmlAccessorFactory
groovy.transform.BaseScript
java.lang.Deprecated
javax.annotation.Generated
javax.xml.bind.annotation.XmlAccessorOrder
org.hibernate.annotations.TypeDef
net.sf.ehcache.pool.sizeof.annotations.IgnoreSizeOf
org.apache.hive.common.HiveVersionAnnotation
org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeAction
org.codehaus.commons.nullanalysis.NotNullByDefault
org.eclipse.persistence.oxm.annotations.XmlNameTransformer
org.glassfish.jersey.Beta
org.jgroups.annotations.Experimental

और भी बहुत कुछ।

यह package-info.java फ़ाइल फ़ाइल होगी, जहाँ आप इस तरह के एनोटेशन (javadoc के साथ) रख सकते हैं।





java date calendar timezone