C # में सही टाइमस्टैम्प कैसे प्राप्त करें


146

मैं अपने आवेदन में वैध टाइमस्टैम्प प्राप्त करना चाहता हूं इसलिए मैंने लिखा है:

public static String GetTimestamp(DateTime value)
{
    return value.ToString("yyyyMMddHHmmssffff");
}
//  ...later on in the code
String timeStamp = GetTimestamp(new DateTime());
Console.WriteLine(timeStamp);

उत्पादन:

000101010000000000

मुझे कुछ ऐसा चाहिए था:

20140112180244

मैंने क्या गल्त किया है?

जवाबों:


192

आपकी गलती का उपयोग किया जा रहा है new DateTime(), जो 1 जनवरी, 0001 को 00: 00: 00.000 पर वर्तमान दिनांक और समय के बजाय देता है। वर्तमान तिथि और समय प्राप्त करने का सही सिंटैक्स DateTime है । अब, इसलिए इसे बदलें:

String timeStamp = GetTimestamp(new DateTime());

इसके लिए:

String timeStamp = GetTimestamp(DateTime.Now);

दूसरा रास्ता क्या है? टाइमस्टैम्प से
डेटाइम तक


2
double timestamp = 1498122000; DateTime fecha = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc).AddSeconds(timestamp);यहां
डैनियल वी

44
var Timestamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();

11
नेट 4.6 की आवश्यकता है।
jeromej

7
यह मेरे लिए इस सवाल का जवाब था, लेकिन मैं प्रयोग किया जाता हैToUnixTimeMilliseconds()
Yass

15
var timestamp = DateTime.Now.ToFileTime();

//output: 132260149842749745

यह अलग लेन-देन को अलग करने का एक वैकल्पिक तरीका है। यह यूनिक्स समय नहीं है, लेकिन विंडोज़ फिल्माया गया है।

से डॉक्स :

A Windows file time is a 64-bit value that represents the number of 100- 
nanosecond intervals that have elapsed since 12:00 midnight, January 1, 1601 
A.D. (C.E.) Coordinated Universal Time (UTC).

2
यह मदद करेगा यदि आपने कुछ स्पष्टीकरण जोड़ा कि क्यों आपका कोड उत्तर दूसरों की तुलना में बेहतर है, तो अन्य उपयोगकर्ता समझेंगे कि इस समस्या का समाधान करने के लिए आपको क्यों उपयोग करना है। केवल स्पष्टीकरण के बिना कोड इतने उपयोगी नहीं होते हैं।
ब्रायन टॉम्पसेट -

3
कैश को अमान्य करने के लिए आसानी से टाइमस्टैम्प शैली प्राप्त करने में मेरी मदद करता है। +1
Adavo

2
Int32 unixTimestamp = (Int32)(TIME.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;

"टाइम" वह डेटटाइम ऑब्जेक्ट है जिसे आप यूनिक्स टाइमस्टैम्प के लिए प्राप्त करना चाहते हैं।


0

के लिए यूटीसी :

string unixTimestamp = Convert.ToString((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);

स्थानीय प्रणाली के लिए :

string unixTimestamp = Convert.ToString((int)DateTime.Now.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.