.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()
封装方法
/// <summary>
/// 获取时间戳10位(秒)
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static long GetTimestamp10(this DateTime dateTime)
{
    return (dateTime.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
}
/// <summary>
/// 获取时间戳13位(毫秒)
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static long GetTimestamp13(this DateTime dateTime)
{
    return (dateTime.ToUniversalTime().Ticks - 621355968000000000) / 10000;
}
/// <summary>
/// 转换时间戳
/// </summary>
/// <param name="timestamp"></param>
/// <returns></returns>
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;
    }
}
                    
                
                
            
        
浙公网安备 33010602011771号