using System; using System.Collections.Generic; using System.Text; namespace TEAMModelOS.SDK.Helper.Common.DateTimeHelper { public static class DateTimeHelper { /// /// 时间戳转换为日期(时间戳单位秒) /// /// /// public static DateTime ConvertToDateTime(long timeStamp) { var dtStart = TimeZoneInfo.ConvertTimeToUtc(new DateTime(1970, 1, 1)); TimeSpan toNow = new TimeSpan(timeStamp); return dtStart.Add(toNow); //var start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); //return start.AddMilliseconds(timeStamp).AddHours(8); } /// /// 日期转换为时间戳(时间戳单位秒) /// /// /// public static long ConvertToTimeStamp13(DateTime time) { DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); return (long)(time.AddHours(-8) - Jan1st1970).TotalMilliseconds; } /// /// 日期转换为时间戳(时间戳单位秒) /// /// /// public static long ConvertToTimeStamp10(DateTime time) { DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); return (long)(time.AddHours(-8) - Jan1st1970).TotalMilliseconds / 1000; } public static DateTime FromUnixTimestamp(this long unixtime) { DateTime sTime = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1), TimeZoneInfo.Utc, TimeZoneInfo.Local); return sTime.AddMilliseconds(unixtime); } public static DateTime FromUnixTimestampOffSet(this long unixtime, int offset) { DateTime sTime = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1), TimeZoneInfo.Utc, TimeZoneInfo.Local); int serverOffset = (int)TimeZoneInfo.Local.GetUtcOffset(DateTime.Now).TotalMinutes; int subOffset = offset - serverOffset; return sTime.AddMilliseconds(unixtime).AddMinutes(subOffset); } public static long ToUnixTimestamp(this DateTime datetime) { //DateTime sTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); DateTime sTime = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1), TimeZoneInfo.Utc, TimeZoneInfo.Local); return (long)(datetime - sTime).TotalMilliseconds; } /// /// 获取当前cpu振荡时间戳 17位数 /// /// public static long GetCPUMillisecond() { return DateTime.Now.ToUniversalTime().Ticks - 621355968000000000; } /// /// 获取标准毫秒级时间戳 13位数 /// /// public static long GetMillisecond() { return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000; } /// /// 获取当前年 /// /// public static int GetCurrentYear() { return DateTime.Now.Year; } /// /// 获取当前月份 /// /// public static int GetCurrentMonth() { return DateTime.Now.Month; } /// /// 获取星期几 /// /// public static DayOfWeek GetCurrentDayOfWeek() { return DateTime.Now.DayOfWeek; } /// /// 获取本年第几天 /// /// public static int GetCurrentDayOfYear() { return DateTime.Now.DayOfYear; } /// /// 获取当前小时 /// /// public static int GetCurrentHour() { return DateTime.Now.Hour; } /// /// 获取当前分钟 /// /// public static int GetCurrentMinute() { return DateTime.Now.Minute; } /// /// 获取当前秒 /// /// public static int GetCurrentSecond() { return DateTime.Now.Second; } /// /// 获得 GMT+8 时间 /// /// public static DateTime ChinaTime() { TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById("China Standard Time");//设置时区 DateTime easternTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, easternZone); return easternTime; } } }