C#时间格式转换为时间戳

快来打我* 2022-11-27 07:03 387阅读 0赞

转载连接: http://blog.csdn.net/ZFSR05255134/article/details/53066873?locationNum=4&fps=1

  1. /// <summary>
  2. /// C#时间格式转换为时间戳(互转)
  3. /// 时间戳定义为从格林威治时间 1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
  4. /// </summary>
  5. public class DateTime_TimeStamp : MonoBehaviour
  6. {
  7. protected int m_timestamp;
  8. /// <summary>
  9. /// 获取时间戳Timestamp
  10. /// </summary>
  11. /// <param name="dt"></param>
  12. /// <returns></returns>
  13. private int GetTimeStamp(DateTime dt)
  14. {
  15. DateTime dateStart = new DateTime(1970, 1, 1, 8, 0, 0);
  16. int timeStamp = Convert.ToInt32((dt - dateStart).TotalSeconds);
  17. return timeStamp;
  18. }
  19. /// <summary>
  20. /// 时间戳Timestamp转换成日期
  21. /// </summary>
  22. /// <param name="timeStamp"></param>
  23. /// <returns></returns>
  24. private DateTime GetDateTime(int timeStamp)
  25. {
  26. DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
  27. long lTime = ((long)timeStamp * 10000000);
  28. TimeSpan toNow = new TimeSpan(lTime);
  29. DateTime targetDt = dtStart.Add(toNow);
  30. return targetDt;
  31. }
  32. /// <summary>
  33. /// 时间戳Timestamp转换成日期
  34. /// </summary>
  35. /// <param name="timeStamp"></param>
  36. /// <returns></returns>
  37. private DateTime GetDateTime(string timeStamp)
  38. {
  39. DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
  40. long lTime = long.Parse(timeStamp + "0000000");
  41. TimeSpan toNow = new TimeSpan(lTime);
  42. DateTime targetDt = dtStart.Add(toNow);
  43. return dtStart.Add(toNow);
  44. }
  45. void OnGUI()
  46. {
  47. if (GUILayout.Button("获取当前时间的时间戳"))
  48. {
  49. DateTime dtNow = DateTime.Now;
  50. m_timestamp = GetTimeStamp(dtNow);
  51. Debug.Log(string.Format("获取当前时间的时间戳 = {0} -> {1}", dtNow.ToString("yyyy-MM-dd hh:mm:ss"), m_timestamp));
  52. }
  53. if (GUILayout.Button("将时间戳转换成日期_1"))
  54. {
  55. DateTime dt = GetDateTime(m_timestamp);
  56. Debug.Log(string.Format("将时间戳转换成日期_1 = {0} -> {1}", m_timestamp, dt.ToString("yyyy-MM-dd hh:mm:ss")));
  57. }
  58. if (GUILayout.Button("将时间戳转换成日期_2"))
  59. {
  60. DateTime dt = GetDateTime(m_timestamp.ToString());
  61. Debug.Log(string.Format("将时间戳转换成日期_2 = {0} -> {1}", m_timestamp, dt.ToString("yyyy-MM-dd hh:mm:ss")));
  62. }
  63. }
  64. }

发表评论

表情:
评论列表 (有 0 条评论,387人围观)

还没有评论,来说两句吧...

相关阅读