2012-07-01 13 views
8

मैं डेल्फी में विभिन्न समय क्षेत्रों से वर्तमान समय कैसे प्राप्त करूं। यदि मैं TidSNTP का उपयोग करता हूं तो यह मुझे केवल मेरे लोकेल में समय क्षेत्र देगा।मैं डेल्फी में एक अलग टाइमज़ोन में वर्तमान समय कैसे प्राप्त करूं?

उत्तर

13

आप आसानी से delphi-tzdb (Time Zone Database for Delphi) के साथ स्थानीय समय को अलग-अलग समय क्षेत्र में परिवर्तित कर सकते हैं।

इसके documentation से उदाहरण है।

var 
    LSydney: TTimeZone; 
    LMadeUpLocalTime, LUniversalTime, 
    LSydneyTime: TDateTime; 
begin 
    // Get the Sydney time zone 
    LSydney := TBundledTimeZone.GetTimeZone('Australia/Sydney'); 

    // Encode a local date/time value -- 14th March 2009 at 12:45:00 PM 
    LMadeUpLocalTime := EncodeDateTime(2009, 03, 14, 12, 45, 00, 00); 

    // Find out what was the time in Sydney at that moment 
    LUniversalTime := TTimeZone.Local.ToUniversalTime(LMadeUpLocalTime); 
    LSydneyTime := LSydney.ToLocalTime(LUniversalTime); 

    WriteLn(Format('When in my time zone the time was %s, in Sydney it was %s.', 
    [DateTimeToStr(LMadeUpLocalTime), DateTimeToStr(LSydneyTime)])); 
end; 
+1

यह एक उत्कृष्ट डेल्फी संसाधन है। और चूंकि यह आईएएनए टाइमज़ोन डेटाबेस पर आधारित है, इसे आसानी से नवीनतम डेटा के साथ अपडेट किया जा सकता है, उदाहरण के लिए जब एक प्रशांत देश डेटलाइन या अर्जेंटीना में आगे बढ़ता है, तो इसकी डेलाइट सेविंग तिथियां और नियम बदल जाते हैं। – frogb

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

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