• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

DateTime和TimeStamp相互转换

武飞扬头像
-学无止境
帮助1

  1.  
    /// <summary>
  2.  
    /// 本时区日期时间转成UTC时间并计算时间戳,精确到毫秒
  3.  
    /// </summary>
  4.  
    /// <param name="local_datetime">本地时间</param>
  5.  
    /// <returns>13位UTC时间戳</returns>
  6.  
    public static long LocalDateTimeToUTCTimestamp(DateTime local_datetime)
  7.  
    {
  8.  
    DateTime dd = new DateTime(1970, 1, 1, 0, 0, 0, 0);
  9.  
    DateTime timeUTC = local_datetime.ToUniversalTime(); // DateTime.SpecifyKind(datetime, DateTimeKind.Utc);//本地时间转成UTC时间
  10.  
    TimeSpan ts = (timeUTC - dd);
  11.  
    return (Int64)ts.TotalMilliseconds;//精确到毫秒
  12.  
    }
  13.  
     
  14.  
    /// <summary>
  15.  
    /// UCT时间计算的时间戳转本时区日期时间
  16.  
    /// </summary>
  17.  
    /// <param name="utc_timeStamp">UTC时间戳</param>
  18.  
    /// <returns>本地时间</returns>
  19.  
    public static DateTime UTCTimestampToLocalDateTime(long utc_timeStamp)
  20.  
    {
  21.  
    DateTime dd = new DateTime(1970, 1, 1, 0, 0, 0, 0);
  22.  
    utc_timeStamp = utc_timeStamp * 10000;
  23.  
    TimeSpan ts = new TimeSpan(utc_timeStamp);
  24.  
    return dd.Add(ts).ToLocalTime();
  25.  
    }
  26.  
     
  27.  
     
  28.  
    /// <summary>
  29.  
    /// 本时区日期时间转成本时区的时间戳,精确到秒
  30.  
    /// </summary>
  31.  
    /// <param name="local_datetime">本地时间</param>
  32.  
    /// <returns>10位本时区的时间戳</returns>
  33.  
    public static long DateTimeToTimestamp_Local(DateTime local_datetime)
  34.  
    {
  35.  
    DateTime dd = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();
  36.  
    TimeSpan ts = (local_datetime - dd);
  37.  
    return (Int64)ts.TotalSeconds;//精确秒
  38.  
    }
  39.  
     
  40.  
    /// <summary>
  41.  
    /// 将本时区的时间戳转本地日期时间
  42.  
    /// </summary>
  43.  
    /// <param name="local_timeStamp"></param>
  44.  
    /// <returns></returns>
  45.  
    public static DateTime TimestampToDateTime_Local(long local_timeStamp)
  46.  
    {
  47.  
    DateTime dtStart = new DateTime(1970, 1, 1, 0, 0, 0).ToLocalTime();
  48.  
    long lTime = ((long)local_timeStamp * 10000000);
  49.  
    TimeSpan toNow = new TimeSpan(lTime);
  50.  
    DateTime targetDt = dtStart.Add(toNow);
  51.  
    return targetDt;
  52.  
    }
  53.  
     
  54.  
     
  55.  
    /// <summary>
  56.  
    /// 测试单击事件
  57.  
    /// </summary>
  58.  
    /// <param name="sender"></param>
  59.  
    /// <param name="e"></param>
  60.  
    private void Btn_Click(object sender, RoutedEventArgs e)
  61.  
    {
  62.  
    var dtNow = DateTime.Now;
  63.  
     
  64.  
    System.Diagnostics.Debug.WriteLine("DateNow:" dtNow.ToString("yyyy-MM-dd HH:mm:ss.fff"));
  65.  
     
  66.  
    var timeStamp1 = LocalDateTimeToUTCTimestamp(dtNow);
  67.  
    System.Diagnostics.Debug.WriteLine("timeStamp1:" timeStamp1);
  68.  
    var dateTime1 = UTCTimestampToLocalDateTime(timeStamp1);
  69.  
    System.Diagnostics.Debug.WriteLine("dateTime1:" dateTime1.ToString("yyyy-MM-dd HH:mm:ss.fff"));
  70.  
     
  71.  
    var timeStamp2 = DateTimeToTimestamp_Local(dtNow);
  72.  
    System.Diagnostics.Debug.WriteLine("timeStamp2:" timeStamp2);
  73.  
    var dateTime2 = TimestampToDateTime_Local(timeStamp2);
  74.  
    System.Diagnostics.Debug.WriteLine("dateTime2:" dateTime2.ToString("yyyy-MM-dd HH:mm:ss.fff"));
  75.  
    }
学新通

测试结果:

DateNow:2022-11-23 15:44:51.173
timeStamp1:1669189491173
dateTime1:2022-11-23 15:44:51.173
timeStamp2:1669189491
dateTime2:2022-11-23 15:44:51.000

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfjbhbf
系列文章
更多 icon
同类精品
更多 icon
继续加载