您的位置:首页 > 编程语言 > C#

C#时间格式转换为时间戳(互转)

2017-11-09 17:06 507 查看
转载连接: http://blog.csdn.net/ZFSR05255134/article/details/53066873?locationNum=4&fps=1

using System.Collections;  

using System;  

  

/// <summary>  

/// C#时间格式转换为时间戳(互转)  

/// 时间戳定义为从格林威治时间 1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。   

/// </summary>  

public class DateTime_TimeStamp : MonoBehaviour  

{  

    protected int m_timestamp;  

  

    /// <summary>  

    /// 获取时间戳Timestamp    

    /// </summary>  

    /// <param name="dt"></param>  

    /// <returns></returns>  

    private int GetTimeStamp(DateTime dt)  

    {  

        DateTime dateStart = new DateTime(1970, 1, 1, 8, 0, 0);  

        int timeStamp = Convert.ToInt32((dt - dateStart).TotalSeconds);  

        return timeStamp;  

    }  

  

    /// <summary>  

    /// 时间戳Timestamp转换成日期  

    /// </summary>  

    /// <param name="timeStamp"></param>  

    /// <returns></returns>  

    private DateTime GetDateTime(int timeStamp)  

    {  

        DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));  

        long lTime = ((long)timeStamp * 10000000);  

        TimeSpan toNow = new TimeSpan(lTime);  

        DateTime targetDt = dtStart.Add(toNow);  

        return targetDt;  

    }  

  

    /// <summary>  

    /// 时间戳Timestamp转换成日期  

    /// </summary>  

    /// <param name="timeStamp"></param>  

    /// <returns></returns>  

    private DateTime GetDateTime(string timeStamp)  

    {  

        DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));  

        long lTime = long.Parse(timeStamp + "0000000");  

        TimeSpan toNow = new TimeSpan(lTime);  

        DateTime targetDt = dtStart.Add(toNow);  

        return dtStart.Add(toNow);  

    }  

  

    void OnGUI()  

    {  

        if (GUILayout.Button("获取当前时间的时间戳"))  

        {  

            DateTime dtNow = DateTime.Now;  

            m_timestamp = GetTimeStamp(dtNow);  

            Debug.Log(string.Format("获取当前时间的时间戳 = {0} -> {1}", dtNow.ToString("yyyy-MM-dd hh:mm:ss"), m_timestamp));  

        }  

  

        if (GUILayout.Button("将时间戳转换成日期_1"))  

        {  

            DateTime dt = GetDateTime(m_timestamp);  

            Debug.Log(string.Format("将时间戳转换成日期_1 = {0} -> {1}", m_timestamp, dt.ToString("yyyy-MM-dd hh:mm:ss")));  

        }  

  

        if (GUILayout.Button("将时间戳转换成日期_2"))  

        {  

            DateTime dt = GetDateTime(m_timestamp.ToString());  

            Debug.Log(string.Format("将时间戳转换成日期_2 = {0} -> {1}", m_timestamp, dt.ToString("yyyy-MM-dd hh:mm:ss")));  

        }  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: