时间格式 和 时间戳
一、UTC时间
时间格式如下:2018-01-22T09:12:43.083Z 或 2013-11-17T11:59:22+08:00 (此处描述不准确:+08:00后结果是北京时间)
其中z 代表是世界协调时间,即:utc
二、GMT时间
时间格式如下:Thu Oct 16 07:13:48 GMT+08:00 2016
三、Unix时间戳
在计算机中看到的UTC时间都是从(1970年01月01日 0:00:00)开始计算秒数的。所看到的UTC时间那就是从1970年这个时间点起到具体时间共有多少秒。 这个秒数就是Unix时间戳。
四、本地时间
UTC时间加上当前时区即为本地时间
例如:北京当地时间为:UTC时间+08:00
五、GMT与UTC的关联
UTC = GMT +/- 0.9 s 因此 UTC 间中需要进行 "闰秒" 以控制两者相差,在使用过程中如果计算不要求十分精确,可以认为两者等同
六、时间戳
什么是时间戳?是从1970-01-01 00:00:00 到当前时间的所过去的时间的 秒数
在C#中计算时间戳的方法 (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000
621355968000000000 是1-1970年之间的天数,当然不包含1970年的日期了
换算方式如下:
1969*365=718685 天
每4年润一,但是整百年不润,整400才再润,换算出1-1970年有 1968/4-19+19/4=477个闰年
中间经历了477个闰年,每个闰年是366天,所以,从1-1970年之间共拥有 719162天
那么这中间经历了 719162*24*60*60=62,135,596,800 秒
再C# 中 Ticks 的单位是100ns,1s=1000ms=1000000um=1000000000ns
将62,135,596,800 换算成纳秒 62135596800000000000 换算成Ticks 于是得到 621355968000000000
现在我们理解了为什么用Ticks减去那么大一个数字的意思了吧。 因为Ticks是100ns为单位的,所以 Ticks*100得到ns /1000得到微妙 /1000得到 毫秒
Ticks*100/1000,000,000=Ticks/10,000,000 现在最后那个/10 000 000 也不再难以理解了吧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构