2013-08-01 32 views
8
karşılaştığım

unix zaman damgasını almak için:nasıl C# kodu fonksiyonu aşağıdaki .Net

Byte[] GetUNIXTimeStamp(DateTime dtVal) 
{ 
    if (m_bytTimeStamp == null) m_bytTimeStamp = new Byte[14]; 

    Byte[] bytVals = BitConverter.GetBytes((UInt16)dtVal.Day); 
    m_bytTimeStamp[0] = bytVals[0]; 
    m_bytTimeStamp[1] = bytVals[1]; 
    bytVals = BitConverter.GetBytes((UInt16)dtVal.Month); 
    m_bytTimeStamp[2] = bytVals[0]; 
    m_bytTimeStamp[3] = bytVals[1]; 
    bytVals = BitConverter.GetBytes((UInt16)dtVal.Year); 
    m_bytTimeStamp[4] = bytVals[0]; 
    m_bytTimeStamp[5] = bytVals[1]; 
    bytVals = BitConverter.GetBytes((UInt16)dtVal.Hour); 
    m_bytTimeStamp[6] = bytVals[0]; 
    m_bytTimeStamp[7] = bytVals[1]; 
    bytVals = BitConverter.GetBytes((UInt16)dtVal.Minute); 
    m_bytTimeStamp[8] = bytVals[0]; 
    m_bytTimeStamp[9] = bytVals[1]; 
    bytVals = BitConverter.GetBytes((UInt16)dtVal.Second); 
    m_bytTimeStamp[10] = bytVals[0]; 
    m_bytTimeStamp[11] = bytVals[1]; 
    bytVals = BitConverter.GetBytes((UInt16)dtVal.Millisecond); 
    m_bytTimeStamp[12] = bytVals[0]; 
    m_bytTimeStamp[13] = bytVals[1]; 

    return m_bytTimeStamp; 
} 

... ve sadece aynı etkiyi elde etmek için bazı kısa ve en temiz yolu olup olmadığını merak?

Eğer

+0

Muhtemelen bu [soru] [1] size yardımcı olabilir üzerinde yanıtlandı. [1]: http://stackoverflow.com/questions/249760/how-to-convert-unix-timestamp-to-datetime-and-vice-versa –

cevap

9

aşağıdaki kullanabilirsiniz ederiz: Bu olsa

long CurrentTimestamp = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds; 

SO birden çok kez

+0

herhalde 'DateTime.UtcNow' olduğu Doğru seçim. – Joey

+1

TotalSeconds, çift değer döndürmez mi? –

+6

Bu SO birden çok kez yanıtlandı, ve hala yanlış anladım :) DateTime (1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc) veya bazı saat dilimlerinde gün ışığından yararlanma kullanmanız gerekir yanlış sonuçlara neden – rouen

İlgili konular