OffSet/Utc/FromUnixTimeSeconds
Utc就是格林威治的时间。Offset就是本地时间和格林威治时间的时区差之类的。
DateTime dtt = System.DateTime.Now ;//utcnow是格林威治的时间,与北京时间-8 strin(dtt); public static string strin(System.DateTimeOffset mydate)//时间转成DateTimeOffset,时间后面会出现+08:00的样式,会给出传过来的时间比格林威治多几个时区 5 { 6 7 DateTime d1 = mydate.Date; 8 int hour = mydate.Hour; 9 DateTime LocalDateTime = mydate.LocalDateTime;//会转成本地时间 10 TimeSpan offset = mydate.Offset;//显示+8:00:00就是比格林威治时间按多8个时区 11 int Second = mydate.Second; 12 long longs = mydate.Ticks; 13 14 long ToFileTime = mydate.ToFileTime(); 15 DateTime UtcDateTime = mydate.UtcDateTime;//utc的时间 16 DateTimeOffset ToUniversalTime = mydate.ToUniversalTime();//通用时间 utc加+00:00 17 DateTimeOffset ToLocalTime = mydate.ToLocalTime();//会转成本地时间,带有+00:00的样式 18 DateTimeOffset ToOffset = mydate.ToOffset(offset);//当前时间 +8:00:00的样式 19 20 return ""; 21 }
Utc就是格林威治的时间了。Offset就是本地时间和格林威治时间的时区差之类的了。
DateTime timestamp = DateTimeOffset.Now.DateTime;//就是当前时间
//DateTime.UtcNow返回以UTC表示的当前时间 DateTimeOffset date = DateTimeOffset.Now;//当前时间 {2020/5/11 15:30:35 +08:00} DateTime date2 = DateTime.Now;//{2020/5/11 15:30:35} DateTime date3 = DateTime.UtcNow;//{2020/5/11 15:30:35} DateTime timestamp = DateTimeOffset.Now.DateTime; //{2020/5/11 15:32:09} DateTimeOffset dto = new DateTimeOffset(1970, 1, 1, 1, 0, 0, TimeSpan.Zero); long rett = dto.ToUnixTimeSeconds();//返回3600s 就是从1970年0时0秒,到 这个时间(1970, 1, 1, 1, 0, 0),间隔3600秒 // ToUnixTimeSeconds 传回自1970-01-01T00:00:00Z 以来所经过的秒数。 时间戳
using System; public class Program { public static void Main() { //UTC+08:00) 北京,重庆,香港特别行政区,乌鲁木齐 var CHTimeZone = TimeZoneInfo.FindSystemTimeZoneById("China Standard Time"); Console.WriteLine("当地的CHTimeZone:" + CHTimeZone); //(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi Console.WriteLine("当地的DateTime.Now:" + DateTime.Now); //4/11/2021 6:19:42 AM //TimeZoneInfo.Local:得到一个System.TimeZoneInfo表示本地时区的 Console.WriteLine("当地的TimeZoneInfo.Local:" + TimeZoneInfo.Local);//(UTC) Coordinated Universal Time //ConvertTime:将时间从一个时区转换到另一个时区. //1:要转换的日期和时间。2:日期时间的时区。3:要将日期时间转换为的时区。 //返回2020/12/10 15:32:49 DateTime Chtime = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, CHTimeZone); Console.WriteLine("当地的时间:" + Chtime); //4/11/2021 2:19:42 PM var s = TimeSpan.FromHours(8); Console.WriteLine("TimeSpan:" + s); //TimeSpan:08:00:00 //返回一个2020/12/10 15:32:49 +08:00 DateTimeOffset ds = new DateTimeOffset(Chtime, TimeSpan.FromHours(8)); Console.WriteLine("ds:" + ds); //4/11/2021 2:19:42 PM +08:00 } }
DateTimeOffset.FromUnixTimeSeconds(Int64)(这里的Int64就是一个整数值,代表秒数)方法用于
表示从1970-01-01T00:00:00Z开始经过的秒数的Unix时间转换为DateTimeOffset值。
此方法返回的日期和时间值表示与Unix时间相同的时刻。
var timestamp = DateTimeOffset.Now.DateTime.ToString("yyyy-MM-dd HH:mm:ss.fff"); //就是当前时间
Console.WriteLine("当前时间UTC当地的时间:" + timestamp);
var time0 = DateTimeOffset.Now.AddHours(8).DateTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
Console.WriteLine("所在当前时区的时间:" + time0);
var time = DateTimeOffset.FromUnixTimeSeconds(Convert.ToInt32("1618017275")).DateTime.AddHours(8).ToString("yyyy-MM-dd HH:mm:ss.fff");
Console.WriteLine("你给过来一个时间戳,转成你当前时区的时间戳的时间:" + time);
var time2 = DateTimeOffset.FromUnixTimeSeconds(2).DateTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
Console.WriteLine("你给过来的时间戳在Utc当地的时间:" + time2);
Console.WriteLine("当地的时间:" + System.DateTime.Now);
Console.WriteLine("当地的时间(后缀多了:+00:00):" + DateTimeOffset.Now);
DateTimeOffset d= System.DateTime.Now;
Console.WriteLine("你给过来的时间戳在Utc当地的时间:" + d);
var timeout = TimeSpan.FromSeconds(180); //{00:03:00} var times = DateTimeOffset.UtcNow;//{2021/5/25 7:13:59 +00:00} var ass0 = (DateTimeOffset.UtcNow + timeout);//{2021/5/25 7:17:19 +00:00} var ass = (DateTimeOffset.UtcNow + timeout).ToUnixTimeSeconds();//1621927073 var expiry = (DateTimeOffset.UtcNow + timeout).ToUnixTimeSeconds().ToString(); var q0 = DateTimeOffset.Now;//{2021/5/25 15:15:17 +08:00} var q = DateTimeOffset.Now.Offset;//{08:00:00} var q1 = DateTimeOffset.Now.Ticks;//637575525318924937 var q2 = DateTimeOffset.UtcNow;//{2021/5/25 7:15:56 +00:00} var q3 = DateTimeOffset.MaxValue; var q4 = DateTimeOffset.MinValue;