|
@@ -2,20 +2,10 @@ using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Text;
|
|
|
|
|
|
-namespace TEAMModelOS.SDK.Helper.Common.DateTimeHelper
|
|
|
+namespace TEAMModelOS.SDK
|
|
|
{
|
|
|
public static class DateTimeHelper
|
|
|
{
|
|
|
- /// <summary>
|
|
|
- /// 日期转换为时间戳(时间戳单位秒)
|
|
|
- /// </summary>
|
|
|
- /// <param name="TimeStamp"></param>
|
|
|
- /// <returns></returns>
|
|
|
- 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)
|
|
|
{
|
|
@@ -23,102 +13,55 @@ namespace TEAMModelOS.SDK.Helper.Common.DateTimeHelper
|
|
|
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;
|
|
|
}
|
|
|
+
|
|
|
/// <summary>
|
|
|
- /// 获取当前cpu振荡时间戳 17位数
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- public static long GetCPUMillisecond()
|
|
|
- {
|
|
|
- return DateTime.Now.ToUniversalTime().Ticks - 621355968000000000;
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
- /// 获取标准毫秒级时间戳 13位数
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- public static long GetMillisecond()
|
|
|
- {
|
|
|
- return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000;
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
- /// 获取当前年
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- public static int GetCurrentYear()
|
|
|
- {
|
|
|
- return DateTime.Now.Year;
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
- /// 获取当前月份
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- public static int GetCurrentMonth()
|
|
|
- {
|
|
|
- return DateTime.Now.Month;
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
- /// 获取星期几
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- public static DayOfWeek GetCurrentDayOfWeek()
|
|
|
- {
|
|
|
- return DateTime.Now.DayOfWeek;
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
- /// 获取本年第几天
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- public static int GetCurrentDayOfYear()
|
|
|
- {
|
|
|
- return DateTime.Now.DayOfYear;
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
- /// 获取当前小时
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- public static int GetCurrentHour()
|
|
|
- {
|
|
|
- return DateTime.Now.Hour;
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
- /// 获取当前分钟
|
|
|
+ /// 获得 GMT+8 时间
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
- public static int GetCurrentMinute()
|
|
|
+ public static DateTime GetGMTTime(this DateTime dateTime, int GMT = 8)
|
|
|
{
|
|
|
- return DateTime.Now.Minute;
|
|
|
+ //SystemTimeZoneById : https://learn.microsoft.com/zh-cn/previous-versions/windows/embedded/ms912391(v=winembedded.11)
|
|
|
+ //TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById("China Standard Time");//设置时区
|
|
|
+ //DateTime easternTime = TimeZoneInfo.ConvertTimeFromUtc(dateTime, easternZone);
|
|
|
+ //return easternTime;
|
|
|
+
|
|
|
+
|
|
|
+ //处理UTC时差
|
|
|
+ TimeZoneInfo localTimezone = TimeZoneInfo.Local;
|
|
|
+ var Hours = localTimezone.BaseUtcOffset.Hours;
|
|
|
+ if (Hours!=0)
|
|
|
+ {
|
|
|
+ //有时差
|
|
|
+ dateTime = dateTime.AddHours(GMT-Hours);
|
|
|
+ }
|
|
|
+ return dateTime;
|
|
|
}
|
|
|
/// <summary>
|
|
|
- /// 获取当前秒
|
|
|
+ /// 默认东八区+8
|
|
|
/// </summary>
|
|
|
+ /// <param name="dateTime"></param>
|
|
|
+ /// <param name="GMT"></param>
|
|
|
/// <returns></returns>
|
|
|
- public static int GetCurrentSecond()
|
|
|
+ public static DateTimeOffset GetGMTTime(this DateTimeOffset dateTime,int GMT=+8)
|
|
|
{
|
|
|
- return DateTime.Now.Second;
|
|
|
+ //处理UTC时差
|
|
|
+ TimeZoneInfo localTimezone = TimeZoneInfo.Local;
|
|
|
+ var Hours = localTimezone.BaseUtcOffset.Hours;
|
|
|
+ if (Hours!=0)
|
|
|
+ {
|
|
|
+ //有时差
|
|
|
+ dateTime = dateTime.AddHours(GMT-Hours);
|
|
|
+ }
|
|
|
+ return dateTime;
|
|
|
}
|
|
|
- /// <summary>
|
|
|
- /// 获得 GMT+8 时间
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- public static DateTime ChinaTime()
|
|
|
- {
|
|
|
|
|
|
- TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById("China Standard Time");//设置时区
|
|
|
- DateTime easternTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, easternZone);
|
|
|
- return easternTime;
|
|
|
- }
|
|
|
public static int getDays(int year) {
|
|
|
int day = 0;
|
|
|
for (int i = 0;i<=12;i++) {
|