2014-10-10 7 views
14

Quartz.net अगले ट्रिगर घटना के अगली बार प्राप्त करने के लिए एक विधि प्रदान करता है का उपयोग करता है करने के लिए एक यूटीसी DateTimeOffset कन्वर्ट करने के लिए: http://quartznet.sourceforge.net/apidoc/1.0/html/html/cc03bb79-c0c4-6d84-3d05-a17f59727c98.htmकैसे दिनांक समय सिस्टम समयक्षेत्र

डॉक्स का दावा है कि इस Trigger.GetNextFireTimeUtc() विधि वापसी एक DateTime? लेकिन यह वास्तव में DateTimeOffset? देता है। मुझे वास्तव में DateTimeOffset प्राप्त नहीं होता है या यह फ़ंक्शन नियमित DateTime के बजाय एक क्यों लौटाता है। मैं चाहता हूं कि अगली बार ट्रिगर दौड़ने जा रहा है लेकिन मेरे टाइमज़ोन में।

मैंने यह trigger.GetNextFireTimeUtc().Value.DateTime किया लेकिन यह मुझे 2 घंटे पहले, यानी यूटीसी समय देता था। मैं अपने कंप्यूटर के अनुसार सही समय कैसे प्राप्त कर सकता हूं?

trigger.GetNextFireTimeUtc().Value.LocalDateTime 

प्रलेखन से::

+0

'लोकलडेट टाइम' का उपयोग करें। आप एक [नज़र] होनी चाहिए [1] [1]: http://stackoverflow.com/questions/179940/convert-utc-gmt-time-to-local-time – TryToSolveItSimple

+0

आप कर सकते हैं [डेटटाइम बनाम डेटटाइम ऑफसेट] में दिलचस्पी लें (http://stackoverflow.com/questions/4331189/datetime-vs-datetimeoffset)। –

+1

इसके अलावा, आप क्वार्ट्ज के 1.0 दस्तावेज़ देख रहे हैं। क्वार्ट्ज 2.0 ने इस विधि को 'डेटटाइम ऑफसेट' वापस करने के लिए बदल दिया है, [जैसा कि यहां दिखाया गया है] (http://quartznet.sourceforge.net/apidoc/2.0/html/html/e07a781b-39c8-db14-3421-c563497fe23c.htm)। –

उत्तर

36

को यूटीसी कन्वर्ट करने के लिए तुम बस DateTimeOffset.LocalDateTime संपत्ति का उपयोग कर सकते है

यदि आवश्यक हो, LocalDateTime संपत्ति वर्तमान सिस्टमटाइम ऑफसेट ऑब्जेक्ट की दिनांक और समय को स्थानीय सिस्टम की दिनांक और समय में परिवर्तित करता है। रूपांतरण एक दो-चरण ऑपरेशन है:

  • संपत्ति वर्तमान दिनांकटाइम ऑफसेट ऑब्जेक्ट के समय कोऑर्डिनेटेड यूनिवर्सल टाइम (यूटीसी) में परिवर्तित करती है।
  • संपत्ति तब यूटीसी को स्थानीय समय में परिवर्तित करती है।

आप वास्तव में हालांकि DateTimeOffset ध्यान देना चाहिए - अगर आप दिनांक/समय काम के लिए बीसीएल का उपयोग कर रहे समझने के लिए एक महत्वपूर्ण प्रकार है।

-1

इस कोड को स्थानीय

var local = utc.ToLocalTime(); 
+0

यह * बस * 'डेटटाइम' प्रकार को बदलने के लिए जा रहा है, इसके मूल्य को बदले बिना। यदि ओपी बस मूल्य प्रदर्शित कर रहा है, तो उन्हें कोई परिवर्तन नहीं दिखाई देगा –

+0

ओपी वास्तव में मूल्य प्रदर्शित कर रहा है – Dan

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