Asp.Net Core - UnixTimeStamp的存储

由于js和C#的时间概念不同,生成时间时,会产生时区数的误差。

#region Unix Timestamp 10位 总秒数
/// <summary>
/// 生成十位的 Unix 时间戳
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static int GetUnixTimeStamp(DateTime dt)
{
    DateTime dateStart = new DateTime(1970, 1, 1).ToLocalTime();
    int timeStamp = Convert.ToInt32((dt - dateStart).TotalSeconds);

    return timeStamp;
}
/// <summary>
/// 日期格式转 Unix 时间戳
/// </summary>
/// <param name="dtStr"></param>
/// <param name="timeStamp"></param>
/// <returns></returns>
public static bool GetUnixTimeStampByStr(string dtStr, out int timeStamp)
{
    DateTime dt = DateTime.Now;
    if (DateTime.TryParse(dtStr, out dt))
    {
        timeStamp = GetUnixTimeStamp(dt);
        return true;
    }
    else
    {
        timeStamp = 0;
        return false;
    }
}

/// <summary>
/// 十位的 Unix 时间戳 转 DateTime
/// </summary>
/// <param name="stam"></param>
/// <returns></returns>
public static DateTime GetDateTimeFormUnixTimeStamp(int stam)
{
    DateTime startTime = new DateTime(1970, 1, 1);
    DateTime dt = startTime.AddSeconds(stam);
    return dt.ToLocalTime();

}
#endregion

2

posted @ 2018-12-18 16:50  德丽莎·阿波卡利斯  阅读(205)  评论(0编辑  收藏  举报