JLChen
2020-12-16 d724f7f21c5cc8c5dd5aa0cf7345a62a662eb2bf
HDL_ON/Common/Utlis.cs
@@ -8,7 +8,7 @@
    /// <summary>
    /// 常用工具类
    /// </summary>
    public class Utlis
    public static class Utlis
    {
      /// <summary>
      /// 全局打印
@@ -262,6 +262,122 @@
            return (long)(dateTime - startTime).TotalSeconds; // 相差秒数
        }
    }
      /// <summary>
      ///
      /// </summary>
      /// <param name="unixTimeStamp"></param>
      /// <returns></returns>
      public static DateTime UnixToDateTimeMS(long unixTimeStamp)
      {
         DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 当地时区
         return startTime.AddMilliseconds(unixTimeStamp);
      }
      /// <summary>
        ///
        /// </summary>
        /// <param name="unixTimeStamp"></param>
        /// <param name="format"></param>
        /// <returns></returns>
      public static string UnixToDateTimeWithFormatMS(long unixTimeStamp, string format = "yyyy")
      {
         DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 当地时区
         return startTime.AddMilliseconds(unixTimeStamp).ToString(format);
      }
      /// <summary>
      ///
      /// </summary>
      /// <param name="unixTimeStamp">毫秒时间戳</param>
      /// <returns></returns>
      public static string UnixToDateTimeYearMS(long unixTimeStamp)
      {
         try
         {
            return UnixToDateTimeWithFormatMS(unixTimeStamp);
            }
            catch
            {
            return "2000";
            }
      }
      /// <summary>
        ///
        /// </summary>
        /// <param name="isMilliseconds">是否微秒</param>
        /// <returns></returns>
      public static string GetTimestamp(bool isMilliseconds = true)
      {
         System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
         if (isMilliseconds)
         {
            return ((long)(DateTime.Now - startTime).TotalMilliseconds).ToString(); // 相差微秒数
         }
         else
         {
                return ((long)(DateTime.Now - startTime).TotalSeconds).ToString(); // 相差秒数
            }
      }
      /// <summary>
      /// 获取请求提交的语言参数
      /// </summary>
      public static string GetPostLanguageType()
      {
         return Language.CurrentLanguage == "Chinese" ? LanguageTypeEnum.CHINESE.ToString() : LanguageTypeEnum.ENGLISH.ToString();
      }
      #region 时间格式转换
      private const int Second = 1;
      private const int Minute = 60 * Second;
      private const int Hour = 60 * Minute;
      private const int Day = 24 * Hour;
      private const int Month = 30 * Day;
      /// <summary>
      /// 时间转换
      /// 少于1天  显示 时分
      /// 少于一年 显示 月日
      /// 大于一年 显示 年
      /// </summary>
      /// <param name="dateTime"></param>
      /// <returns></returns>
      public static string ToFriendlyDisplay(this DateTime dateTime)
      {
         var ts = DateTime.Now - dateTime;
         var delta = ts.TotalSeconds;
         if (delta < 24 * Hour)
         {
            //显示 时:分
            return dateTime.ToString("HH:mm");
         }
         else if (delta < 12 * Month)
         {
            //显示 月:日
            return dateTime.ToString("MM/dd");
         }
         else
         {   //显示 年
            return dateTime.ToString("yyyy");
         }
      }
      /// <summary>
      /// 时间转换
      /// 少于1天  显示 时分
      /// 少于一年 显示 月日
      /// 大于一年 显示 年
      /// </summary>
      /// <param name="dateTime"></param>
      /// <returns></returns>
      public static string ToFriendlyDisplay(long unixTimeStamp)
      {
         return ToFriendlyDisplay(UnixToDateTimeMS(unixTimeStamp));
      }
      #endregion
   }
}