喵喔喔
由于归功于LukeH,我将一些扩展方法放在一起以方便使用:public static DateTime FromUnixTime(this long unixTime){
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return epoch.AddSeconds(unixTime);}public static long ToUnixTime(this DateTime date){
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return Convert.ToInt64((date - epoch).TotalSeconds);}注意下面从CodesInChaos注释,上面FromUnixTime返回DateTime了Kind的Utc,这是很好的,但上面ToUnixTime更加犯罪嫌疑人不占什么样的DateTime给定date的。要允许date的Kind是无论是Utc或Local,使用ToUniversalTime:public static long ToUnixTime(this DateTime date){
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return Convert.ToInt64((date.ToUniversalTime() - epoch).TotalSeconds);}ToUniversalTime将a Local(或Unspecified)转换DateTime为Utc。如果你不想在从DateTime移动到epoch时创建epoch DateTime实例,你也可以这样做:public static long ToUnixTime(this DateTime date){
return (date.ToUniversalTime().Ticks - 621355968000000000) / 10000000;}