C#使用时间戳
前言
参考博客
C#获取和转换时间戳:
https://blog.csdn.net/weixin_39885282/article/details/79462443
获取时间戳:
https://www.cnblogs.com/xiangxisheng/p/12364423.html
Convert.ToInt64(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#使用时间戳的更多相关文章
- C# DateTime与时间戳转换
C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳. 1. 什么是时间戳 首先要清楚JavaScript与Unix的时间戳的区别: JavaScript时间戳: ...
- nodejs中获取时间戳、时间差
Nodejs中获取时间戳的方法有很多种,例如: new Date().getTime() Date.now() process.uptime() process.hrtime() 平时想获取一个时间戳 ...
- EF里Guid类型数据的自增长、时间戳和复杂类型的用法
通过前两章Lodging和Destination类的演示,大家肯定基本了解Code First是怎么玩的了,本章继续演示一些很实用的东西.文章的开头提示下:提供的demo为了后面演示效果,前面代码有些 ...
- fmt标签把时间戳格式化日期
jsp页面标签格式化日期 <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f" %> ...
- MySQL对时间戳的转换处理
开发中很多时候在数据库里都会存储Long类型的时间戳,而时间戳做比对会相对麻烦 我的绝决方案: SELECT FROM_UNIXTIME(LEFT(create_time,10), '%Y-%m-%d ...
- Kafka消息时间戳(kafka message timestamp)
最近碰到了消息时间戳的问题,于是花了一些功夫研究了一下,特此记录一下. Kafka消息的时间戳 在消息中增加了一个时间戳字段和时间戳类型.目前支持的时间戳类型有两种: CreateTime 和 L ...
- Python时间戳和日期的相互转换
Python时间戳和日期的相互转换 (2014-03-17 11:24:35) 转载▼ 分类: Python 当前时间戳:time.time() 当前日期:time.ctime() 1.Pytho ...
- 时间戳TimeStamp处理
我获得这个时间戳是得想除以1000再处理的,看看你们的需要先除多少再处理 //时间戳处理 NSInteger time = timeStamp / 1000; NSNumber *timer = [ ...
- C#中DateTime.Ticks属性及Unix时间戳转换
1.相关概念 DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 纳秒数,即Ticks的属性为100纳秒(1Ticks = 0.0001毫秒). ...
- 在mysql 查询语句中将时间戳格式转化为年月日格式
SELECT FROM_UNIXTIME('时间戳的字段名称', '%Y-%m-%d %H:%i:%s') FROM `表名` http://www.cnblogs.com/tdalcn/arc ...
随机推荐
- 【海思】Hi3531A SPI功能的详细配置以及使用
目录 一.前言 二.SPI管脚信息获取 2.1 SPI_SCLK.SPI_SDI.SPI_SDO管脚复用寄存器 2.2 片选SPI_CSN0-SPI_CSN3管脚寄存器 三.配置和使能与SPI相关的管 ...
- python基础之操作列表
遍历元素 magicians = ['alice','david','carolina'] for magician in magicians: print(magician) magicians = ...
- django项目运行步骤
第一步: 创建gjango项目 django-admin startproject dname python manage.py startapps aname 第二部: 运行 -- 编辑设置 -- ...
- JavaScript使用中的一些小技巧
任何一门技术在实际中都会有一些属于自己的小技巧.同样的,在使用JavaScript时也有一些自己的小技巧,只不过很多时候有可能容易被大家忽略.而在互联网上,时不时的有很多同行朋友会总结(或收集)一些这 ...
- 5.1 Spring5源码--Spring AOP源码分析一
目标: 1.什么是AOP, 什么是AspectJ, 2. 什么是Spring AOP 3. Spring AOP注解版实现原理 4. Spring AOP切面原理解析 一. 认识AOP 1.1 什么是 ...
- Python中迭代循环使用比较多的range函数的作用
range函数用于生成一个不可变的数字序列可迭代对象,类型为range,该数字序列通常用于在 for 循环中循环指定的次数. 具体可参考:<Python中与迭代相关的函数>的详细介绍 老猿 ...
- PyQt学习随笔:QTableWidget项sizeHint的作用以及与QHeadView的sectionResizeMode、ResizeToContents的关系
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在学习QTableWidgetItem的sizeHint()方法时,Qt自带材料中介绍sizeHin ...
- js- 实现属性名的拼接 obj['name']
obj.name---->obj[name] 这两种调用方式一样,使用obj.name内部转换成 obj['name'], 使用obj['name']更快. obj['name'] 里面必须是 ...
- Scrum 冲刺第七天
一.每日站立式会议 1.会议内容 1)进行每日工作汇报 张博愉: 昨天已完成的工作:与林梓琦同学完成发帖模块的交接 今日工作计划:完善发帖模块的点赞.上传图片功能 工作中遇到的困难:Mybatis的一 ...
- JAVA_数据类型介绍与基本数据类型之间的运算规则
基本数据类型 整型: byte.short.int.long java 的整型常量默认为int型,在java程序中变量通常声明为int型,除非不足以表示较大的数才用long,而在声明long型常量必须 ...