.net下时间与时间戳之间的转换
来源:互联网 发布:数据库日志已截断 编辑:程序博客网 时间:2024/06/06 05:42
DateTime.Ticks此属性的值表示 0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 毫微秒隔数 (0: 00:00 年 1 月 1 日 UTC 0001,以公历),后者表示DateTime.MinValue。 它不包括归因于闰秒的刻度的数。
/// <summary>/// 获取1970-01-01至dateTime的毫秒数/// </summary>public long GetTimestamp(DateTime dateTime){ DateTime dt = new DateTime(1970,1,1,0,0,0,0); return (dateTime.Ticks - dt.Ticks) / 10000;}/// <summary>/// 根据时间戳timestamp(单位毫秒)计算日期/// </summary>public DateTime NewDate(long timestamp){ DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0); long tt = dt.Ticks + timestamp * 10000; return new DateTime(tt);}
调用:
long lTime = long.Parse("1500521873371"); DateTime vt=NewDate(lTime); MessageBox.Show(vt.ToString("yyyy-MM-dd HH:mm:ss"));
由于new DateTime(1970, 1, 1, 0, 0, 0, 0).Ticks的值是固定的值(621355968000000000)不用每次去计算,上面的方法可以如下改写:
public long GetTimestamp(DateTime dateTime){ return (dateTime.Ticks - 621355968000000000) / 10000;}public DateTime NewDate(long timestamp){ long tt = 621355968000000000 + timestamp * 10000; return new DateTime(tt);}
以上转换后的时间也会是UTC的时间,目前中国的时区是东八区,可以在NewDate得到的时间加上8个小时,就变成中国的时间,也可以通过TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0)).Ticks 即:621356256000000000。把方法上面方法中的621355968000000000 换成 621356256000000000 转换后的时间就是当前时区的时间。
阅读全文
0 0
- .net下时间与时间戳之间的转换
- 时间戳与时间之间的转换
- 时间与时间戳之间的转换
- 时间戳与字符串之间的转换
- UTC时间与UNIX时间戳之间的转换
- python——时间与时间戳之间的转换
- python 时间戳与时间之间的转换
- JS 时间字符串与时间戳之间的转换
- java 时间与时间戳之间的转换
- Python——时间与时间戳之间的转换
- python时间与时间戳之间的转换
- 时间和时间戳之间的转换
- util包下的时间类型与sql包下的时间类型之间的转换
- unix时间戳 与.net 时间转换
- JS获取时间的相关函数及时间戳与时间日期之间的转换
- 【JS】获取当前时间,时间与时间戳之间的转换
- JS获取当前时间,时间与时间戳之间的转换
- java 时间与字符串之间的转换
- 使用 vue-cli 可以快速创建 vue 项目
- 显示图像
- BZOJ 1901: Zju2112 Dynamic Rankings 树状数组套主席树
- kafka问题分析
- web页面的回流,认识与避免
- .net下时间与时间戳之间的转换
- spring boot 最佳实践(六)--Spring Cache
- 微信Failed to resolve: com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+
- AVPlayerItem翻译
- HTTP 协议中的 Transfer-Encoding
- Android Studio 编译 依赖了微信支付无法编译通过的解决方案
- list map
- 在Vue中如何使用Cookie
- 学习笔记,记录一下字符串逆序的方法。