unix时间戳转时间

#region Unix时间转换
/// <summary>
/// Unix时间转换
/// </summary>
/// <param name="unixTime"></param>
/// <param name="timeFormat">yyyy-MM-dd HH:mm:ss.fff </param>
/// <param name="timeType">时间类型 0 秒;1毫秒</param>
/// <returns></returns>
public string UnixTimeFormat(double unixTime,string timeFormat, int timeType = 0)
{
string sRet = string.Empty;
try
{

#region 旧方法
//偏移量+unix时间 转本地时间
//DateTime formateTime ;
//var start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
//if (timeType==0)
//{
// formateTime = start.AddSeconds(unixTime).ToLocalTime();
//}
//else
//{
// formateTime = start.AddMilliseconds(unixTime).ToLocalTime();
//}
//sRet = formateTime.ToString(timeFormat);
#endregion

#region 新方法
// 将 Unix 时间戳转换为 DateTimeOffset(基于 UTC)
DateTimeOffset dateTimeOffset;
if (timeType == 0)
{
dateTimeOffset = DateTimeOffset.FromUnixTimeMilliseconds((long)(unixTime * 1000));
}
else
{
dateTimeOffset = DateTimeOffset.FromUnixTimeMilliseconds((long)unixTime);
}
// 获取UTC时间+8(北京时间)
DateTime formateTime = dateTimeOffset.UtcDateTime.AddHours(8);
sRet = formateTime.ToString(timeFormat);
#endregion
}
catch
{
sRet = Convert.ToString(unixTime);
}
return sRet;
}
#endregion

posted on 2025-04-25 18:53  金宝的博客  阅读(30)  评论(0)    收藏  举报

导航