发布日期:2018-03-26
C#如何将Unix时间戳转换为DateTime,反之亦然?+ 查看更多
C#如何将Unix时间戳转换为DateTime,反之亦然?
+ 查看更多
发布日期:2018-03-07 14:14
分类:C#
浏览次数:152
有示例代码,但是是谈论毫秒/纳秒问题。
在MSDN上有同样的问题,C#来计算从Unix诞生到现在的秒数(seconds since the Unix epoch)。
代码如下:
public Double CreatedEpoch { get { DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime(); TimeSpan span = (this.Created.ToLocalTime() - epoch); return span.TotalSeconds; } set { DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime(); this.Created = epoch.AddSeconds(value); } }
回答:
这是你需要的:public static DateTime UnixTimeStampToDateTime( double unixTimeStamp ) { // Unix timestamp is seconds past epoch System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc); dtDateTime = dtDateTime.AddSeconds( unixTimeStamp ).ToLocalTime(); return dtDateTime; }或者,对Java来说(有点不同)
public static DateTime JavaTimeStampToDateTime(double javaTimeStamp) { // Java timestamp is millisecods past epoch System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc); dtDateTime = dtDateTime.AddSeconds(Math.Round(javaTimeStamp / 1000)).ToLocalTime(); return dtDateTime; }