时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
( 这东西可以百度百科下:时间戳,或着 Unix时间戳 )
| 时间 | 秒 |
| 1 分钟 | 60 |
| 1 小时 | 3600 |
| 1 天 | 86400 |
| 1 周 | 604800 |
| 1 月 (30.44 天) | 2629743 |
| 1年 (365.24 天) | 31556736 |
时间戳的获取,及过程中记录的代码:
public static void ShiJianChuo() {
Console.WriteLine(" 时间戳: 当前时间 - GWT时间(格林尼治时间 1970.1.1 0:0:0:0)的时间间隔 的差值,进行换算 ");
Console.WriteLine("tt 换算到 秒 : 10 位 ");
Console.WriteLine("tt 换算到 毫秒 : 13 位!n");
var timestr1 = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
var timestr2 = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000;
var a = DateTime.Now.ToUniversalTime();
var c = DateTime.UtcNow;
var d = a.Ticks;
var f = c.Ticks;
var b = DateTime.Now.ToFileTimeUtc();
Console.WriteLine("简便写法 : 直接查网络 吧 ");
Console.WriteLine("(DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000 —— 10 位");
Console.WriteLine("(DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000 —— 13 位");
Console.WriteLine($"当前时间对应的时间戳: 10 位: {timestr1}");
Console.WriteLine($"当前时间对应的时间戳: 13 位: {timestr2}");
Console.WriteLine($"获取 UTC 世界协调时间: ");
Console.WriteLine($"t 法 1 :DateTime.Now.ToUniversalTime() := {a}");
Console.WriteLine($"t 法 2 : DateTime.UtcNow : = {c}");
Console.WriteLine($"当前 UTC 实例 换算为 此实例的日期和时间的 刻度数: 结果 : ");
Console.WriteLine($"t UTC 法 1 :对应的 :.Ticks = {d}");
Console.WriteLine($"t UTC 法 2 :对应的 :.Ticks = {f}");
Console.WriteLine($"当前时间对象 表示为 Windows 的 文件时间:DateTime.Now.ToFileTimeUtc() = {b}");
Console.WriteLine("n------------------------- 实际原理 --------------------------------");
var locNow = DateTime.Now;
var utcNow = DateTime.UtcNow;
TimeSpan tsNow = locNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
Console.WriteLine($"TimeSpan : 表示一个 时间间隔:返回一个 TimeSpan 类型: 本地 - 1970.1.1 0:0:0:0 = {tsNow}");
var str3 = Convert.ToInt64(tsNow.TotalSeconds).ToString();
var str4 = Convert.ToInt64(tsNow.TotalMilliseconds).ToString();
Console.WriteLine($"当前 本地 时间:{locNow}");
Console.WriteLine($"t 本地 时间 减去 1960-1-1 0:0:0:0 : —— 时间戳1 -10 位 -到 秒 级:{str3}");
Console.WriteLine($"t 本地 时间 减去 1960-1-1 0:0:0:0 : —— 时间戳2 -13 位 -到 毫秒 级:{str4}");
Console.WriteLine();
TimeSpan tsUtc = utcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
Console.WriteLine($"TimeSpan : 表示一个 时间间隔:返回一个 TimeSpan 类型: UTC - 1970.1.1 0:0:0:0 = {tsUtc}");
var str1 = Convert.ToInt64(tsUtc.TotalSeconds).ToString();
var str2 = Convert.ToInt64(tsUtc.TotalMilliseconds).ToString();
Console.WriteLine($"当前 UTC 时间:{utcNow}");
Console.WriteLine($"t UTC 时间 减去 1960-1-1 0:0:0:0 : —— 时间戳1 -10 位 -到 秒 级:{str1}");
Console.WriteLine($"t UTC 时间 减去 1960-1-1 0:0:0:0 : —— 时间戳2 -13 位 -到 毫秒 级:{str2}");
Console.WriteLine();
Console.WriteLine($"tsUtc.TotalSeconds : 返回 Double 类型:utc 时间间隔 【转化】 -> 秒:{tsUtc.TotalSeconds}");
Console.WriteLine($"tsUtc.TotalMilliseconds : 返回 Double 类型:utc 时间间隔 【转化】 -> 毫秒:{tsUtc.TotalMilliseconds}");
Console.WriteLine($"tsUtc.Seconds : 返回 int 类型:【获取 秒 组件值】:{tsUtc.Seconds}");
Console.WriteLine($"tsUtc.Milliseconds : 返回 int 类型:【获取 毫秒 组件值】:{tsUtc.Milliseconds}");
}



