2012-10-28 11 views
7

में सेकंड की संख्या दिनांक समय के लिए सेकंड की संख्या परिवर्तित करने के लिए करने के लिए, वीबी .NET में, मैं निम्नलिखित कोड का उपयोग करें:परिवर्तित दिनांक समय वीबी नेट

Dim startDate As New DateTime(1970, 1, 1) 
    Dim targetDate As DateTime 
    Dim noOfSeconds As Integer = DataInSeconds 

    targetDate = startDate.AddSeconds(noOfSeconds) 

जहां DataInSeconds सेकंड की संख्या से युक्त एक पूर्णांक है (1/1/1970 से शुरू)

यह अच्छा काम करता है। लेकिन मुझे नहीं पता कि उलटा रूपांतरण कैसे करें। (डेटटाइम से सेकेंड की संख्या तक)। कोई मुझे मदद कर सकता है?

उत्तर

8

जब आप एक दूसरे से DateTime उदाहरणों घटाना, आप एक TimeSpan मिल - आप इस का उपयोग कर सकते सेकंड की संख्या प्राप्त करने के लिए:

Dim startDate As New DateTime(1970, 1, 1) 
Dim noOfSeconds As Integer 

noOfSeconds = (currentDate - startDate).TotalSeconds 
4

1/1/1970 यूनिक्स काल है। सावधान रहें कि यह एक यूटीसी तिथि है, आप इसे रूपांतरण में अनदेखा नहीं कर सकते हैं। इस प्रकार:

Module DateConversion 
    Public ReadOnly Property Epoch() As DateTime 
     Get 
      Return New DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc) 
     End Get 
    End Property 

    Public Function FromUnix(ByVal seconds As Integer, local As Boolean) As DateTime 
     Dim dt = Epoch.AddSeconds(seconds) 
     If local Then dt = dt.ToLocalTime 
     Return dt 
    End Function 

    Public Function ToUnix(ByVal dt As DateTime) As Integer 
     If dt.Kind = DateTimeKind.Local Then dt = dt.ToUniversalTime 
     Return CInt((dt - Epoch).TotalSeconds) 
    End Function 
End Module 

ToUnix() से सावधान रहें, DateTimeKind अनिर्दिष्ट हो सकता है, के रूप में यह आपकी झलकी में था। इसे स्पष्ट बनाने के लिए डेटटाइम ऑफसेट का उपयोग करने पर विचार करें। और 2038 में कुछ उचित करना सुनिश्चित करें जब यह सब नीचे गिर रहा है।

0
Label1.Text = New DateTime(1970, 1, 1, 0, 0, 0, 
    DateTimeKind.Utc).AddSeconds(CLng(TextBox1.Text)/1000)  

एक पाठ बॉक्स और एक बटन और एक लेबल बनाने के लिए, आप माइक्रोसेकंड उपयोग कर रहे हैं बटन इस कोड डाल दिया और निर्भर करता है या सेकंड (/ 1000 रखने के लिए) (हटाना/1000) आप तारीख दिखाएगा/समय आदि