2009-10-25 14 views
5

मैं 1 9 70 के बाद से समय क्षेत्र और डीएसटी ध्वज के साथ सेकंड (और माइक्रोसेकंड) का उपयोग करके तिथियों का प्रतिनिधित्व करता हूं। मैं strftime का उपयोग कर तारीख का एक प्रतिनिधित्व मुद्रित करना चाहता हूं, लेकिन यह पर्यावरण से उठाए गए टाइमज़ोन (बाहरी लंबे int टाइमज़ोन) के लिए वैश्विक मूल्य का उपयोग करता है। मैं अपनी पसंद के क्षेत्र को मुद्रित करने के लिए बार-बार कैसे जा सकता हूं?मैं चोरी के पहले कॉल करने से पहले समय क्षेत्र कैसे सेट कर सकता हूं?

उत्तर

6

निम्न प्रोग्राम आपके आवश्यक टाइमज़ोन के साथ यूनिक्स पर्यावरण परिवर्तनीय TZ सेट करता है और फिर स्ट्रैटाइम का उपयोग करके स्वरूपित समय प्रिंट करता है।

नीचे दिए गए उदाहरण में टाइमज़ोन को यूएस प्रशांत समय क्षेत्र में सेट किया गया है।

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

int main (int argc, char *argv[]) 
{ 
    struct tm *mt; 
    time_t mtt; 
    char ftime[10]; 

    setenv("TZ", "PST8PDT", 1); 
    tzset(); 
    mtt = time(NULL); 
    mt = localtime(&mtt); 
    strftime(ftime,sizeof(ftime),"%Z %H%M",mt); 

    printf("%s\n", ftime); 
} 
1

timezone वैश्विक चर सेट करने के माध्यम से टाइमज़ोन बदलें और strftime के माध्यम से मुद्रित समय प्राप्त करने के लिए localtime का उपयोग करें।

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

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