POSIX में time_t
मान सेकंड होने के लिए निर्दिष्ट है, हालांकि सी मानक द्वारा इसकी गारंटी नहीं है, इसलिए यह गैर-पॉज़िक्स सिस्टम पर सत्य नहीं हो सकता है। यह आमतौर पर है (वास्तव में, मुझे यकीन नहीं है कि यह कितनी बार सेकंड का प्रतिनिधित्व करने वाला मान नहीं है)।
#include <time.h>
#include <stdio.h>
int main()
{
time_t now = time(NULL);
struct tm now_tm = *localtime(&now);
struct tm then_tm = now_tm;
then_tm.tm_sec += 50; // add 50 seconds to the time
mktime(&then_tm); // normalize it
printf("%s\n", asctime(&now_tm));
printf("%s\n", asctime(&then_tm));
return 0;
}
एक उपयुक्त में अपना समय स्ट्रिंग पार्स:
यहाँ समय मानों को जोड़ने का एक उदाहरण है कि स्वीकार नही करता एक time_t
मानक पुस्तकालय सुविधाओं, जो वास्तव में जोड़ तोड़ समय के लिए विशेष रूप से महान नहीं हैं का उपयोग कर सेकंड का प्रतिनिधित्व करता है struct tm
चर एक अभ्यास के रूप में छोड़ दिया गया है। strftime()
फ़ंक्शन का उपयोग एक नया प्रारूप करने के लिए किया जा सकता है (और POSIX strptime()
फ़ंक्शन पार्सिंग में सहायता कर सकता है)।
स्रोत
2009-12-07 16:13:42
मुझे लगता है कि अपने उदाहरण में दिनांक स्वरूप underspecified है। 200 9 -7000000 7 दिसंबर या 27 जनवरी का हो सकता है। – Thomas
@ बेंजामिन, सीटाइम (दिनांक/समय रूपांतरण फ़ंक्शंस) और स्ट्रेटीम (एक समय के स्ट्रिंग प्रस्तुति को एक समय टीएम संरचना में कनवर्ट करता है) के लिए मैन पेजों का एक पठन है। – Glen