吐槽一句:国内的C#和Unity相关的有些博主实在是太懒了,同样的文章到处复制,导致中文搜索出来的第一页至少50%都是重复的内容…
正文分割线
C#中时间戳转DateTime有两种方式:
Unix初始时间+时间戳
- Unix时间戳转DateTime
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;
}
- Unix毫秒时间戳转DateTime
public static DateTime JavaTimeStampToDateTime( double javaTimeStamp )
{
// Java timestamp is milliseconds past epoch
System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
dtDateTime = dtDateTime.AddMilliseconds( javaTimeStamp ).ToLocalTime();
return dtDateTime;
}
使用DateTimeOffset
- .Net v4.6之后增加了内建的时间戳转换工具,很方便
public static DateTime TimeStampToDateTime( long timeStamp, bool inMilli = false)
{
DateTimeOffset dateTimeOffset = inMilli ? DateTimeOffset.FromUnixTimeMilliseconds(timeStamp) : DateTimeOffset.FromUnixTimeSeconds(timeStamp);
return dateTimeOffset.LocalDateTime;
}
这篇博客主要讨论了如何在C#中将时间戳转换为DateTime,包括Unix初始时间+时间戳的方法,以及使用DateTimeOffset的方式。作者提到.NET v4.6后内置了时间戳转换工具,简化了转换过程。
668

被折叠的 条评论
为什么被折叠?



