
正文
.NET / C# 时间与时间戳的转换
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。
我们在计算时间戳时应为1970年01月01日到指定时间。
应当注意世界时间与本地时间的区别,不然结果可能存在偏差。
PS:以下示例代码返回时间戳均为13位(故被转换的时间戳同为13位,13位结果即总毫秒数不同需求请自觉转换)。
在某些情况下会出现时间戳显示结果与预期结果略有偏差,合理运用本地时间与世界时间的偏移量即可解决。
/// <summary>
/// 获取本地时间的世界时间戳
/// </summary>
/// <returns></returns>
public long GetNowTimeStamp()
{
var TimeStamps = (DateTime.Now.ToUniversalTime().Ticks - ) / ;
return TimeStamps;
}
/// <summary>
/// 将时间转换为时间戳
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public long ToTimeStamp(DateTime dateTime)
{
var TimeStamps = (dateTime.Ticks - ) / ;
return TimeStamps;
}
/// <summary>
/// 获取本地时间的世界时间的偏移量
/// </summary>
/// <returns></returns>
public long GetUtcOffsets()
{
var UtcOffsets = TimeZone.CurrentTimeZone.GetUtcOffset(new DateTime()).Ticks / ;
return UtcOffsets;
} /// <summary>
/// 将时间戳转换为时间
/// </summary>
/// <returns></returns>
public DateTime ToDateTime(long TimeStamps)
{
var date = new DateTime(, , ).AddMilliseconds(TimeStamps);
//new DateTime().AddMilliseconds(621355968000000000/10000).AddMilliseconds(TimeStamps);//效果同上
return date;
}








