前言

参考博客

C#获取和转换时间戳:

https://blog.csdn.net/weixin_39885282/article/details/79462443

获取时间戳:

https://www.cnblogs.com/xiangxisheng/p/12364423.html

Convert.ToInt64(Double):

https://docs.microsoft.com/zh-cn/dotnet/api/system.convert.toint64?view=netcore-3.1#System_Convert_ToInt64_System_Double_

示例

获取时间戳

关于Ticks和TimeSpan

使用过程中发现了一个问题,TimeSpan获取的10位和13位时间戳有时候会存在差异。

建议使用Ticks去整除得到时间戳。

原因:Convert.ToInt64(Double),对小数的保留规则导致数据会有偏差

使用Ticks

        static void Test7()
{
//1970-01-01的Ticks值
long tStart = 621355968000000000;
//方法1,直接相减
long ts1 = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0)).Ticks;
//方法2,将当前时间转换为Utc时间,再减
long ts2 = DateTime.Now.ToUniversalTime().Ticks - tStart;
//方法3,直接获取当前Utc时间,再减
long ts3 = DateTime.UtcNow.Ticks - tStart; var ret1 = ts1 / 10000000;
var ret2 = ts1 / 10000; Console.WriteLine(ret1);//10位
Console.WriteLine(ret2);//13位
}

运行结果

使用TimeSpan

        /// <summary>
/// 获取时间戳,TimeSpan
/// </summary>
static void Test6()
{
//1970-01-01的Ticks值
long tStart = 621355968000000000;
//方法1,直接相减
TimeSpan ts1 = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
//方法2,将当前时间转换为Utc时间,再减
TimeSpan ts2 = new TimeSpan(DateTime.Now.ToUniversalTime().Ticks - tStart);
//方法3,直接获取当前Utc时间,再减
TimeSpan ts3 = new TimeSpan(DateTime.UtcNow.Ticks - tStart); var ret1 = Convert.ToInt64(ts1.TotalSeconds);
var ret2 = Convert.ToInt64(ts1.TotalMilliseconds); Console.WriteLine(ret1);//10位
Console.WriteLine(ret2);//13位
}

运行结果

转换时间戳

        static void Test8()
{
long ret1 = 1593488038;
long ret2 = 1593488038297;
var ret10 = ret1 * 10000000;
var ret20 = ret2 * 10000;
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); TimeSpan ts1 = new TimeSpan(ret10);
var dt1 = dtStart.Add(ts1);
TimeSpan ts2 = new TimeSpan(ret20);
var dt2 = dtStart.Add(ts2); Console.WriteLine(dt1.ToString("yyyy-MM-dd HH:mm:ss.ffff"));
Console.WriteLine(dt2.ToString("yyyy-MM-dd HH:mm:ss.ffff"));
}

运行结果

C#使用时间戳的更多相关文章

  1. C# DateTime与时间戳转换

    C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳. 1. 什么是时间戳 首先要清楚JavaScript与Unix的时间戳的区别: JavaScript时间戳: ...

  2. nodejs中获取时间戳、时间差

    Nodejs中获取时间戳的方法有很多种,例如: new Date().getTime() Date.now() process.uptime() process.hrtime() 平时想获取一个时间戳 ...

  3. EF里Guid类型数据的自增长、时间戳和复杂类型的用法

    通过前两章Lodging和Destination类的演示,大家肯定基本了解Code First是怎么玩的了,本章继续演示一些很实用的东西.文章的开头提示下:提供的demo为了后面演示效果,前面代码有些 ...

  4. fmt标签把时间戳格式化日期

    jsp页面标签格式化日期 <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f" %> ...

  5. MySQL对时间戳的转换处理

    开发中很多时候在数据库里都会存储Long类型的时间戳,而时间戳做比对会相对麻烦 我的绝决方案: SELECT FROM_UNIXTIME(LEFT(create_time,10), '%Y-%m-%d ...

  6. Kafka消息时间戳(kafka message timestamp)

    最近碰到了消息时间戳的问题,于是花了一些功夫研究了一下,特此记录一下.   Kafka消息的时间戳 在消息中增加了一个时间戳字段和时间戳类型.目前支持的时间戳类型有两种: CreateTime 和 L ...

  7. Python时间戳和日期的相互转换

    Python时间戳和日期的相互转换 (2014-03-17 11:24:35) 转载▼   分类: Python 当前时间戳:time.time() 当前日期:time.ctime() 1.Pytho ...

  8. 时间戳TimeStamp处理

     我获得这个时间戳是得想除以1000再处理的,看看你们的需要先除多少再处理 //时间戳处理 NSInteger time = timeStamp / 1000; NSNumber *timer = [ ...

  9. C#中DateTime.Ticks属性及Unix时间戳转换

    1.相关概念 DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 纳秒数,即Ticks的属性为100纳秒(1Ticks = 0.0001毫秒). ...

  10. 在mysql 查询语句中将时间戳格式转化为年月日格式

    SELECT  FROM_UNIXTIME('时间戳的字段名称', '%Y-%m-%d %H:%i:%s')   FROM `表名` http://www.cnblogs.com/tdalcn/arc ...

随机推荐

  1. Java数据结构(七)—— 排序算法

    排序算法(Sort Algorithm) 排序算法介绍和分类 将一组数据,依指定顺序进行排列 排序的分类 内部排序 指将需要处理的所有数据都加载到内部存储器中进行排序 外部排序 数据量过大,无法全部加 ...

  2. C语言讲义——结构化编程(分支、循环)

    顺序结构(从上到下) 分支结构(也叫选择结构) 循环结构 分支结构 if...else 最基本的分支结构是if(){}else{}. 为了代码的安全,同时也是出于代码规范的考虑,if()后面一定要加花 ...

  3. 树莓派4b 安装最新wiringpi库

    树莓派4自带的wiringPi库默认是2.50,无法映射到gpio,所以需要更新到2.52才能与树莓派映射: 1. 安装自带的wiringPi库 $ Sudo apt-get install wiri ...

  4. model基础操作

    url.py from django.contrib import admin from django.urls import path,include from app1.views import ...

  5. AlanShan数据库课程设计报告

    目    录 1.绪论.... 2 1.1前言... 2 1.2社会背景... 2 1.3超市背景... 3 2.系统可行性研究.... 4 2.1 技术可行性研究... 4 2.2 经济可行性研究. ...

  6. maven依赖问题的出现原因与解决方式

    摘要 maven依赖问题作为开发者应该是经常遇到的问题,在个人单独开发单独维护的项目里,可能体现不那么明显,一是自己对导入的jar大部分都很明确,二是出现问题第一解决发现也很快,问题就没那么严重,而在 ...

  7. 转:Python2字符编码问题汇总

    这篇文章的部分问题在Python3以后不再存在,老猿只是觉得文章的部分内容还是有参考价值,因此在此原文转发连接: Python2字符编码问题汇总

  8. 【Docker】 CentOS7 安装 Docker 及其使用方法 ( 一 )

    系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...

  9. 步步为营,打造CQUILib UI框架库

    步步为营,打造CQUILib UI框架库 UI框架包括如下几个方面:: 丰富的UI控件 窗口管理 主题 多语言 托盘 视图与业务解耦 登录框效果如下:: 提示框效果如下:: 后续讲解如何步步为营,打造 ...

  10. ASP数据库连接方法语法总结

    经常使用到有关数据库的操作.包括连接代码,SQL命令等等,又不曾刻意去记忆它们(我本人是不愿意去记这东东),所以常常在用到的时候又去查书本,翻来翻去.一些比较少用的数据库还不一定能顺利找到,所以现在把 ...