Getdynamictimezoneinformation फ़ंक्शन का उपयोग करके, इन दो दिनांक संरचनाओं को स्थानीय दिनांक/समय प्रपत्र में कैसे परिवर्तित करें।


n GetDynamicTimeZoneInformation(&dtzi) फ़ंक्शन का उपयोग करके, और ‘dtzi’ संरचना के भीतर, यह बताता है
आप डेलाइट सेविंग टाइम में हैं या नहीं और वे कब शुरू होंगे, इसके माध्यम से
ये दो तारीखें. इस फ़ंक्शन का रिटर्न वैल्यू भी आपको उसी जानकारी के बारे में बताता है।
लेकिन कोई इन डेलाइटडेट और/या मानक दिनांक को कैसे परिवर्तित कर सकता है
पठनीय स्थानीय दिनांक/समय प्रपत्रों में संरचनाएँ। क्या मैं पूछ सकता हूँ कि यह “सी” में कैसे किया जाता है। मैं वहां जानता हूं
कुछ रूपांतरण होने चाहिए, लेकिन कैसे? हालाँकि, आपके समय के लिए धन्यवाद।

मैंने क्या प्रयास किया है:

परीक्षण और त्रुटि विधि. पाए गए उदाहरणों का उपयोग करना और फिर पाए गए विचार को समस्या पर लागू करना। कभी-कभी यह ठीक से काम नहीं करता और बिल्कुल भी नहीं।

समाधान 1

मैं यहां एक धारणा बना रहा हूं कि आप दोनों को परिवर्तित करने के बारे में बात कर रहे हैं SYSTEMTIME में संरचनाएँ DYNAMIC_TIME_ZONE_INFORMATION वस्तु। इसे पूरा करने के लिए, मेरा मानना ​​है कि आप इसे परिवर्तित करके शुरुआत करने जा रहे हैं SYSTEMTIME स्थानीय फ़ाइल समय का उपयोग करके संरचना SystemTimeToLocalFileTime समारोह। एक बार जब आप यह कर लेंगे, तो आप इसका उपयोग करेंगे FileTimeToSystemTime स्थानीय फ़ाइल समय को वापस परिवर्तित करने के लिए SYSTEMTIME स्थानीय समय में तारीख का प्रतिनिधित्व करने वाली संरचना। यह कुछ इस तरह दिख सकता है:

सी
SYSTEMTIME standardDate = timeZoneInfo.StandardDate;

FILETIME localFileTime;
SystemTimeToLocalFileTime(&standardDate, &localFileTime);

SYSTEMTIME localStandardDate;
FileTimeToSystemTime(&localFileTime, &localStandardDate);

char dateString[20];
sprintf(dateString, "%d-%02d-%02dT%02d:%02d:%02dT", localStandardDate.wYear, localStandardDate.wMonth, localStandardDate.wDay, localStandardDate.wHour, localStandardDate.wMinute, localStandardDate.wSecond);

ध्यान दें, मैं इस विधि को यहां संपादक में बना रहा हूं, इसलिए यहां शायद एक या दो टाइप त्रुटियां हो सकती हैं।

コメント

タイトルとURLをコピーしました