2011-04-15 21 views
9

के बाद मिलीसेकंड प्राप्त करें मेरे पास एएसपी.नेट, वीबी.नेट दिनांक है, और मैं 1 जनवरी 1 9 70 से मिलीसेकंड की संख्या प्राप्त करने की कोशिश कर रहा हूं। मैंने एक विधि की तलाश करने की कोशिश की एमएसडीएन में, लेकिन मुझे कुछ भी नहीं मिला। क्या किसी को भी यह करना आता है?एएसपी.नेट: 1/1/1970

उत्तर

21

आप किसी भी दो DateTime उदाहरण घटा सकते हैं और TimeSpan और TotalMilliseconds प्राप्त कर सकते हैं जो आपको कुल मिलीसेकंड देगा। नीचे नमूना

DateTime dt1970 = new DateTime(1970, 1, 1); 
    DateTime current = DateTime.Now;//DateTime.UtcNow for unix timestamp 
    TimeSpan span = current - dt1970; 
    Console.WriteLine(span.TotalMilliseconds.ToString()); 

एक लाइनर

//DateTime.MinValue is 01/01/01 00:00 so add 1969 years. to get 1/1/1970 
DateTime.Now.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds; 
7

वैकल्पिक रूप से, आप Ticks संपत्ति का उपयोग करें और एक अस्थायी वस्तु के निर्माण से बचने कर सकते हैं:

long epochTime = (DateTime.UtcNow.Ticks - 621355968000000000)/10000; 

बहरहाल, यह पूरी तरह से

नहीं है

कारण:

DateTime d = new DateTime(1970, 01, 01); 
var temp = d.Ticks; // == 621355968000000000 
-1

यह यूनिक्स युग मिलीसेकंड में प्रदान करेगा। (सम्मान करता यूटीसी आपके स्थानीय समय के बजाय समय)

Split(DateTime.UtcNow.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds(), ".", 2)(0) 
0

नेट 4.6 के साथ शुरू, विधि ToUnixTimeMilliseconds अधिक सटीक समाधान प्रदान करता है।

दिनांक समय

से DateTimeOffset

DateTimeOffset.Now.ToUnixTimeMilliseconds() 

से

new DateTimeOffset(dateTime).ToUnixTimeMilliseconds() 

स्रोत: https://docs.microsoft.com/en-us/dotnet/api/system.datetimeoffset.tounixtimemilliseconds?view=netframework-4.6#System_DateTimeOffset_ToUnixTimeMilliseconds