DateTime和TimeStamp相互转换
-
/// <summary>
-
/// 本时区日期时间转成UTC时间并计算时间戳,精确到毫秒
-
/// </summary>
-
/// <param name="local_datetime">本地时间</param>
-
/// <returns>13位UTC时间戳</returns>
-
public static long LocalDateTimeToUTCTimestamp(DateTime local_datetime)
-
{
-
DateTime dd = new DateTime(1970, 1, 1, 0, 0, 0, 0);
-
DateTime timeUTC = local_datetime.ToUniversalTime(); // DateTime.SpecifyKind(datetime, DateTimeKind.Utc);//本地时间转成UTC时间
-
TimeSpan ts = (timeUTC - dd);
-
return (Int64)ts.TotalMilliseconds;//精确到毫秒
-
}
-
-
/// <summary>
-
/// UCT时间计算的时间戳转本时区日期时间
-
/// </summary>
-
/// <param name="utc_timeStamp">UTC时间戳</param>
-
/// <returns>本地时间</returns>
-
public static DateTime UTCTimestampToLocalDateTime(long utc_timeStamp)
-
{
-
DateTime dd = new DateTime(1970, 1, 1, 0, 0, 0, 0);
-
utc_timeStamp = utc_timeStamp * 10000;
-
TimeSpan ts = new TimeSpan(utc_timeStamp);
-
return dd.Add(ts).ToLocalTime();
-
}
-
-
-
/// <summary>
-
/// 本时区日期时间转成本时区的时间戳,精确到秒
-
/// </summary>
-
/// <param name="local_datetime">本地时间</param>
-
/// <returns>10位本时区的时间戳</returns>
-
public static long DateTimeToTimestamp_Local(DateTime local_datetime)
-
{
-
DateTime dd = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();
-
TimeSpan ts = (local_datetime - dd);
-
return (Int64)ts.TotalSeconds;//精确秒
-
}
-
-
/// <summary>
-
/// 将本时区的时间戳转本地日期时间
-
/// </summary>
-
/// <param name="local_timeStamp"></param>
-
/// <returns></returns>
-
public static DateTime TimestampToDateTime_Local(long local_timeStamp)
-
{
-
DateTime dtStart = new DateTime(1970, 1, 1, 0, 0, 0).ToLocalTime();
-
long lTime = ((long)local_timeStamp * 10000000);
-
TimeSpan toNow = new TimeSpan(lTime);
-
DateTime targetDt = dtStart.Add(toNow);
-
return targetDt;
-
}
-
-
-
/// <summary>
-
/// 测试单击事件
-
/// </summary>
-
/// <param name="sender"></param>
-
/// <param name="e"></param>
-
private void Btn_Click(object sender, RoutedEventArgs e)
-
{
-
var dtNow = DateTime.Now;
-
-
System.Diagnostics.Debug.WriteLine("DateNow:" dtNow.ToString("yyyy-MM-dd HH:mm:ss.fff"));
-
-
var timeStamp1 = LocalDateTimeToUTCTimestamp(dtNow);
-
System.Diagnostics.Debug.WriteLine("timeStamp1:" timeStamp1);
-
var dateTime1 = UTCTimestampToLocalDateTime(timeStamp1);
-
System.Diagnostics.Debug.WriteLine("dateTime1:" dateTime1.ToString("yyyy-MM-dd HH:mm:ss.fff"));
-
-
var timeStamp2 = DateTimeToTimestamp_Local(dtNow);
-
System.Diagnostics.Debug.WriteLine("timeStamp2:" timeStamp2);
-
var dateTime2 = TimestampToDateTime_Local(timeStamp2);
-
System.Diagnostics.Debug.WriteLine("dateTime2:" dateTime2.ToString("yyyy-MM-dd HH:mm:ss.fff"));
-
}
测试结果:
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
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13