2013-09-23 8 views
6

इस साइट पर कई सवाल हैं कि यह कैसे करना है। मेरी समस्या यह है कि जब मैं ऐसा करता हूं जो हर किसी के लिए काम करता है तो मुझे सही तिथि या समय नहीं मिलता है। कोड है ...टिक्स को डेटटाइम में कनवर्ट करना

long numberOfTicks = Convert.ToInt64(callAttribute); 
startDateTime = new DateTime(numberOfTicks); 

callAttribute का मूल्य है = "१३७९९५३१११" ऊपर जा रहा समाप्त होता है

यह numberOfTicks = 1379953111

का मूल्य लेकिन DateTime परिवर्तित करने के बाद startDateTime = {1/1/0001 12:02:17 AM}

मैंने टिकों के लिए एक ही मूल्य लिया है और इसे ऑनलाइन रूपांतरित कर दिया है और यह सही दिनांक/समय के साथ आता है।

मैं क्या गलत कर रहा हूं?

+0

क्या मूल्य आप उम्मीद कर रहे हैं? – Anthony

+0

संभावित डुप्लिकेट [यूनिक्स टाइमस्टैम्प को डेटटाइम में कैसे परिवर्तित करें और इसके विपरीत?] (Http://stackoverflow.com/questions/249760/how-to-convert-unix-timestamp-to-datetime-and-vice-versa) – Romoku

+0

यह टिकों की संख्या है और इसमें सेकंड के साथ कुछ लेना देना नहीं है। जिस तारीख/समय की मैं उम्मीद कर रहा हूं वह 9/23/2013 09:18:31 है। यदि मैं एपोक कनवर्टर में नंबर दर्ज करता हूं तो मुझे सही तिथि/समय वापस मिलता है। – Gary

उत्तर

17

आपका मूल्य कई टिकों की प्रतीत नहीं होता है; मुझे लगता है कि यह एक यूनिक्स टाइमस्टैम्प (1970/01/01 यूटीसी के बाद से सेकंड की संख्या)

यहाँ एक समारोह एक UNIX टाइमस्टैम्प से कन्वर्ट करने के लिए है:

static readonly DateTime _unixEpoch = 
    new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); 

public static DateTime DateFromTimestamp(long timestamp) 
{ 
    return _unixEpoch.AddSeconds(timestamp); 
} 
+2

लोगों को जांचने से बचाने के लिए, '1379953111' का प्रश्न का मूल्य' 9/23/2013 4:18:31 PM 'वापस आ जाएगा, जो निश्चित रूप से यह सही जवाब देता है कि उपयोगकर्ता हाल ही में' डेटटाइम 'का उपयोग कर रहा था अब या जैसा और वह शायद एक अलग समय क्षेत्र में या दो घंटे एक या दूसरे तरीके से ऑफसेट हो। – Anthony

+2

आपको यूनिक्स के रूप में यूनिक्स युग के "दयालु" को निर्दिष्ट करना चाहिए, यह देखते हुए कि यूनिक्स युग को परिभाषित किया गया है। –

+0

@ जोन्स स्केट, अच्छा बिंदु; मैंने कोड अपडेट किया। –

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