.NET 获取时间戳
生成18位订单号
DateTime.Now.ToUniversalTime().Ticks - 537525800000000000
示例值
100000064399971543
获取时间错(秒)
(DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000
获取时间错(毫秒)
(DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000
获取时间(秒)
TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970,1,1)).Add(new TimeSpan(1606878355l * 10000000l)).ToString()
获取时间(毫秒)
TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970,1,1)).Add(new TimeSpan(1606878355796 * 10000)).ToString()
封装方法
///
/// 获取时间戳10位(秒)
///
///
///
public static long GetTimestamp10(this DateTime dateTime)
{
return (dateTime.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
}
///
/// 获取时间戳13位(毫秒)
///
///
///
public static long GetTimestamp13(this DateTime dateTime)
{
return (dateTime.ToUniversalTime().Ticks - 621355968000000000) / 10000;
}
///
/// 转换时间戳
///
///
///
public static DateTime ConvertTimestamp(this long timestamp)
{
switch (timestamp.ToString().Length)
{
case 10:
return TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)).Add(new TimeSpan(timestamp * 10000000l));
case 13:
return TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)).Add(new TimeSpan(timestamp * 10000));
default:
return new DateTime(1970, 1, 1);
break;
}
}