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相关的管 ...
- 怎么用Iometer测试存储性能
1.Disk Targets选项栏中选择要测试的磁盘,1 per target of Outstanding I/Os 保持默认即可. 2.在Access Specifications栏中新建测试条件 ...
- PriorityQueue 优先队列的实现
PriorityQueue 的 implementation PriorityQueue即是优先队列.通俗的说就是体育课的时候老师要求从高到低排序,老师能直接一眼看出谁是最高的在班级里.当这个最高的离 ...
- PyQt学习随笔:Model/View中视图数据项编辑变动实时获取变动数据的方法
对于Model/View中视图的数据编辑后怎么能实时获取编辑的数据变动位置和变动情况查阅了一些资料,终于基本弄明白必须重写Model的setData方法才能截获.setData方法是视图中各种角色数据 ...
- PyQt(Python+Qt)学习随笔:Qt Designer中QAbstractButton派生按钮部件autoExclusive属性
autoExclusive 属性保留是否启用按钮的自动排它特性,如果启用了,则属于同一父部件的可选中按钮任何时候只能选中一个按钮:选中另一个按钮将自动取消选中先前选中的按钮,这个功能与排他性按钮组的功 ...
- 第15.13节 PyQt(Python+Qt)入门学习:Qt Designer的Spacers部件详解
一. 引言 在Designer的部件栏中,有两种类型的Spacers部件,下图中上面布局中为一个水平间隔部件(按钮1和按钮2之间的部件),下面布局中为一个垂直间隔部件(按钮3和4之间),如图: 这两种 ...
- 手写mini版MVC框架
目录 1, Springmvc基本原理流程 2,注解开发 编写测试代码: 目录结构: 3,编写自定义DispatcherServlet中的初始化流程: 3.1 加载配置文件 3.2 扫描相关的类,扫描 ...
- Java 8 中的方法引用,轻松减少代码量,提升可读性!
1. 引言 Java8中最受广大开发中喜欢的变化之一是因为引入了 lambda 表达式,因为这些表达式允许我们放弃匿名类,从而大大减少了样板代码,并提高了可读性. 方法引用是lambda表达式的一种特 ...
- CSS基础-Flexbox
flexbox 是一种一维的布局模型,它给 flexbox 的子元素之间提供了强大的空间分布和对齐能力. 说 flexbox 是一种一维的布局,是因为一个 flexbox 一次只能处理一个维度上的元素 ...
- fabric智能合约模板
以创建用户为例,我觉得基本都是这个框架,用特殊功能直接再往上加,欢迎留言交流 func createUser(stub shim.ChaincodeStubInterface, args []stri ...