दिलचस्प पोस्ट
PHP में सीएसआरएफ को रोकना माइक्रोसॉफ्ट वेब एपीआई फाइल लौटती है? बाइट का उपयोग करें ? <String> और <string.h> के बीच का अंतर? .save () के बीच और अद्यतन () का उपयोग करते हुए मोंगोज़ अंतर ओएस एक्स में sed के साथ एक टैब कैरेक्टर कैसे सम्मिलित कर सकता हूं? XML दस्तावेज़ से निर्दिष्ट नोड मान प्राप्त करना has_and_belongs_to_many बनाम has_many के माध्यम से पायथन में पर्ल संगत रेगुलर एक्सप्रेशन (पीसीआरई) Scanf के नुकसान कैसे एक फ्लैट संरचना से एक पेड़ को कुशलतापूर्वक बनाने के लिए? XAML से कमांड पैरामीटर के रूप में एक enum मान पास करना किसी दिए गए स्थान के आस-पास के नजदीकी स्थानों को कुशलता से कैसे ढूंढें कैसे जेपीनल में आकर्षित करना है? (स्विंग / ग्राफिक्स जावा) खाली पकड़ क्यों एक बुरा विचार रोकता है? मैं एफएफ 34.x में एफएफ 33.x फ्लेक्सबॉक्स व्यवहार कैसे प्राप्त करूं?

कैसे यूनिक्स टाइमस्टैम्प iphone एसडीके में NSDate कन्वर्ट करने के लिए?

एक NSDate को यूनिक्स टाइमस्टैम्प में कैसे परिवर्तित किया जाए? मैंने कई पोस्ट पढ़े हैं जो रिवर्स करते हैं लेकिन मुझे अपने प्रश्न से संबंधित कुछ भी नहीं मिल रहा है।

वेब के समाधान से एकत्रित समाधान "कैसे यूनिक्स टाइमस्टैम्प iphone एसडीके में NSDate कन्वर्ट करने के लिए?"

मेरा मानना ​​है कि यह एनएसडीट का चयनकर्ता है जिसे आप ढूंढ रहे हैं:

 - (NSTimeInterval)timeIntervalSince1970 

एक यूनिक्स टाइमस्टैम्प 00:00:00 यूटीसी जनवरी 1, 1 9 70 के बाद से सेकंड की संख्या है। यह टाइप टाइम_टी द्वारा दर्शाया गया है, जो आमतौर पर हस्ताक्षरित 32-बिट पूर्णांक प्रकार (लंबा या पूर्णांक) है।

आईओएस प्रदान करता है – (एनएसटीईईइनइंटरवैल) टाइम इनवर्वेल एसस 1 9 70 एनएसडीटी ऑब्जेक्ट्स के लिए जो 00:00:00 जीएमटी 1 जनवरी 1 9 70 के बाद सेकंड की संख्या देता है। एनएसटीईइनइंटरवल एक डबल फ्लोटिंग प्वाइंट टाइप है, ताकि आपको सेकंड और सेकंड्स के अंश मिले।

चूंकि वे दोनों का एक ही संदर्भ (आधी रात 1 जनवरी 1 99 70 यूटीसी) है और दोनों ही सेकंड में रूपांतरण आसान है, NSTimeInterval को time_t में बदलकर, आपकी जरूरतों के आधार पर गोल या छंटनी:

 time_t unixTime = (time_t) [[NSDate date] timeIntervalSince1970]; 

आप इस तिथि से एक यूनिक्स टाइमस्टैम्प तिथि बना सकते हैं:

 int timestamp = [[NSDate date] timeIntervalSince1970]; 
 - (void)GetCurrentTimeStamp { NSDateFormatter *objDateformat = [[NSDateFormatter alloc] init]; [objDateformat setDateFormat:@"yyyy-MM-dd"]; NSString *strTime = [objDateformat stringFromDate:[NSDate date]]; NSString *strUTCTime = [self GetUTCDateTimeFromLocalTime:strTime];//You can pass your date but be carefull about your date format of NSDateFormatter. NSDate *objUTCDate = [objDateformat dateFromString:strUTCTime]; long long milliseconds = (long long)([objUTCDate timeIntervalSince1970] * 1000.0); NSString *strTimeStamp = [Nsstring stringwithformat:@"%lld",milliseconds]; NSLog(@"The Timestamp is = %@",strTimestamp); } - (NSString *) GetUTCDateTimeFromLocalTime:(NSString *)IN_strLocalTime { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSDate *objDate = [dateFormatter dateFromString:IN_strLocalTime]; [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; NSString *strDateTime = [dateFormatter stringFromDate:objDate]; return strDateTime; } 

नोट: – टाइमस्टैम्प यूटीसी जोन में होना चाहिए, इसलिए मैं अपने स्थानीय समय को यूटीसी समय में बदलता हूं।

तीव्र

स्विफ्ट 3 के लिए अपडेट किया गया

 // current date and time let someDate = Date() // time interval since 1970 let myTimeStamp = someDate.timeIntervalSince1970 

टिप्पणियाँ

  • समयइनर्वरसाइन 1 9 70 टाइमइंटरवॉल देता है, जो Double लिए एक टाइपियाअस है
  • यदि आप अन्य तरीके से जाना चाहते थे तो आप निम्न कार्य कर सकते हैं:

     let myDate = Date(timeIntervalSince1970: myTimeStamp) 

अगर आप इस समय किसी डेटाबेस में स्टोर करना चाहते हैं या इसे सर्वर पर भेजना चाहते हैं … तो यूनिक्स टाइमस्टैम्प का उपयोग करना सबसे अच्छा है यह देखने के लिए यहां एक छोटा स्निपेट है:

 + (NSTimeInterval)getUTCFormateDate{ NSDateComponents *comps = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit fromDate:[NSDate date]]; [comps setHour:0]; [comps setMinute:0]; [comps setSecond:[[NSTimeZone systemTimeZone] secondsFromGMT]]; return [[[NSCalendar currentCalendar] dateFromComponents:comps] timeIntervalSince1970]; } 

मेरा पसंदीदा तरीका बस है:

 NSDate.date.timeIntervalSince1970; 

@ केएक्सिक के अनुसार यूनिक्स समय समारोह का उपयोग करते हुए नीचे दिए गए अनुसार:

  time_t result = time(NULL); NSLog([NSString stringWithFormat:@"The current Unix epoch time is %d",(int)result]); 

.मेरे अनुभव के अनुसार – टाइम इन्टरलावल 1 9 70 से उपयोग न करें, यह युगिक टाइमस्टैम्प देता है – जीएमटी के पीछे जितने सेकेंड हैं

[[एनएसडीट की तारीख] समयइनवरवलसिंस 1 9 70] के साथ एक बग हुआ करता था, यह फोन के समयक्षेत्र के आधार पर समय को घटाता है / घटाता है, लेकिन अब इसे सुलझाया जा रहा है।

यदि आपको स्ट्रिंग के रूप में समय स्टाम्प की आवश्यकता होती है

 time_t result = time(NULL); NSString *timeStampString = [@(result) stringValue];