2009-06-30 70 views

回答

6

有沒有直接的等價物,但他們可以很容易地實現。既然UNIX時間戳是自1970年1月1日的秒數,很容易計算:

public readonly DateTime UnixEpoch = new DateTime(1970, 1, 1); 

// equivalent to PHP mktime : 
public int GetUnixTimestamp(DateTime dt) 
{ 
    TimeSpan span = dt - UnixEpoch; 
    return (int)span.TotalSeconds; 
} 

對於microtime中,你可以使用DateTime.Tick屬性(1 tick = 100納秒,所以10 ticks = 1微秒)

8

下面是mktime(你必須確認時區,雖然):

static DateTime ConvertFromUnixTimestamp(double timestamp) 
{ 
    DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0); 
    return origin.AddSeconds(timestamp); 
} 

static int ConvertToUnixTimestamp(DateTime date) 
{ 
    DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0); 
    TimeSpan diff = date - origin; 
    return (int)diff.TotalSeconds; 
} 

microtime基本上是相同的,但你不必強制轉換爲int