C# 常用汇总

时间处理

public static class DateTimeHelper
    {
        /// <summary>
        /// 获取当前时间戳(Unix时间戳)  
        /// </summary>
        /// <returns></returns>
        public static long GetCurrentUnixTimestamp()
        {
            DateTimeOffset offset = DateTimeOffset.UtcNow;
            return Convert.ToInt64((offset - new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero)).TotalSeconds);
        }

        /// <summary>
        /// 将Unix时间戳转换为DateTime 
        /// </summary>
        /// <param name="unixTimestamp"></param>
        /// <returns></returns>
        public static DateTime UnixTimestampToDateTime(long unixTimestamp)
        {
            DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
            dateTime = dateTime.AddSeconds(unixTimestamp).ToLocalTime();
            return dateTime;
        }

        /// <summary>
        /// 获取当前日期  
        /// </summary>
        /// <returns></returns>
        public static DateTime GetCurrentDate()
        {
            return DateTime.Now;
        }


        /// <summary>
        /// 格式化日期时间字符串 
        /// </summary>
        /// <param name="dateTime"></param>
        /// <param name="format"></param>
        /// <returns></returns>
        public static string FormatDateTime(DateTime dateTime, string format = "yyyy-MM-dd HH:mm:ss")
        {
            return dateTime.ToString(format);
        }


        /// <summary>
        /// 获取与当前日期相差多少天
        /// </summary>
        /// <param name="otherTime"></param>
        /// <returns></returns>
        public static double GetDaysDifference(DateTime otherTime)
        { 
            DateTime currentTime = DateTime.Now; 
            TimeSpan timeSpan = currentTime.Subtract(otherTime); 
            double daysDifference = timeSpan.TotalDays; 
            return daysDifference;
        }
    }

文件处理

 /// <summary>
    /// File  操作
    /// </summary>
    public class FileHelper
    { 
        /// <summary>
        /// 从文件中读取文本 
        /// </summary>
        /// <param name="filePath"></param>
        /// <returns></returns>
        public static string ReadTextFromFile(string filePath) 
        { 
            if (!FileExists(filePath)) 
            {
                return "";
            } 
            return File.ReadAllText(filePath);
        }

        /// <summary>
        /// 以每行作为界限读取
        /// </summary>
        /// <param name="filePath"></param>
        public static List<string> ReadLineByLineWithFileReadLines(string filePath)
        {
            return File.ReadLines(filePath).ToList();
        }

        /// <summary>
        /// 写入文本
        /// </summary>
        /// <param name="text"></param>
        /// <param name="filePath"></param>
        public static void WriteTextToFile(string filePath, string text)
        {
            File.WriteAllText(filePath, text);
        }

        /// <summary>
        /// 追加文本到文件  
        /// </summary>
        /// <param name="text"></param>
        /// <param name="filePath"></param>
        public static void AppendTextToFile(string filePath, string text)
        { 
            File.AppendAllText(filePath, text);
        }

        /// <summary>
        /// 换行追加文本
        /// </summary>
        /// <param name="text"></param>
        /// <param name="filePath"></param>
        public static void AppendTextByLineToFile(string filePath, string text)
        {
            File.AppendAllText(filePath, Environment.NewLine + text);
        }


        /// <summary>
        /// 删除文件
        /// </summary>
        /// <param name="filePath"></param>
        public static void DeleteFile(string filePath)
        {
            File.Delete(filePath);
        }

        /// <summary>
        /// 检查文件是否存在  
        /// </summary>
        /// <param name="filePath"></param>
        /// <returns></returns>
        public static bool FileExists(string filePath) 
        { 
            return File.Exists(filePath); 
        }

        /// <summary>
        /// 检查文件夹是否存在
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static bool DirectoryExists(string path)
        {
            return Directory.Exists(path);
        }

        /// <summary>
        /// 创建文件夹
        /// </summary>
        /// <param name="path"></param>
        public static void CreateDirectory(string path)
        {
            Directory.CreateDirectory(path);
        } 


    }

JSON处理

// Newtonsoft.Json
	/// <summary>
    ///  JSON 处理
    /// </summary>
    public static class JsonHelper
    {
        /// <summary>
        /// 序列化对象到 JSON 字符串  
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string SerializeObject(object obj)
        {
            return JsonConvert.SerializeObject(obj);
        }

        /// <summary>
        /// 反序列化 JSON 字符串到对象  
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="json"></param>
        /// <returns></returns>
        public static T DeserializeObject<T>(string json)
        {
            return JsonConvert.DeserializeObject<T>(json);
        }

        /// <summary>
        /// 序列化对象到格式化(缩进)的 JSON 字符串 
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string SerializeObjectIndented(object obj)
        {
            return JsonConvert.SerializeObject(obj, Formatting.Indented);
        }


        /// <summary>
        /// 将对象序列化为 JSON 并保存到文件
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="filePath"></param>
        public static void SerializeObjectToFile(object obj, string filePath)
        {
            File.WriteAllText(filePath, SerializeObject(obj));
        }

        /// <summary>
        /// 从文件读取 JSON 并反序列化为对象  
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="filePath"></param>
        /// <returns></returns>
        public static T DeserializeObjectFromFile<T>(string filePath)
        {
            string json = File.ReadAllText(filePath);
            return DeserializeObject<T>(json);
        }
    }

字符串处理

public static class StringHelper
    {
        /// <summary>
        /// 转换为大写
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static string ToUpperCase(string input)
        {
            return input.ToUpper();
        }


        /// <summary>
        /// 转换为小写  
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static string ToLowerCase(string input)
        {
            return input.ToLower();
        }


        /// <summary>
        /// 去除字符串两端的空白字符
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static string TrimString(string input)
        {
            return input.Trim();
        }


        /// <summary>
        /// 格式化字符串(使用string.Format的简化版) 
        /// </summary>
        /// <param name="format"></param>
        /// <param name="args"></param>
        /// <returns></returns>
        public static string FormatString(string format, params object[] args)
        {
            return string.Format(format, args);
        }


        /// <summary>
        /// 将字符串转换为字节数组
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static byte[] StringToByteArray(string input)
        {
            return Encoding.UTF8.GetBytes(input);
        }


        /// <summary>
        /// 将字节数组转换为字符串 
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public static string ByteArrayToString(byte[] bytes)
        {
            return Encoding.UTF8.GetString(bytes);
        }





        /// <summary>
        ///  MD5加密方法  
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static string GetMD5Hash(string input)
        {
            using (MD5 md5Hash = MD5.Create())
            {
                byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
                StringBuilder sBuilder = new StringBuilder();
                for (int i = 0; i < data.Length; i++)
                {
                    sBuilder.Append(data[i].ToString("x2"));
                }
                return sBuilder.ToString();
            }
        }


        /// <summary>
        /// 判断当前字符串与MD5加密后的字符串是否一致的方法
        /// </summary>
        /// <param name="input"></param>
        /// <param name="storedHash"></param>
        /// <returns></returns>
        public static bool IsMD5HashMatch(string input, string storedHash)
        {
            string computedHash = GetMD5Hash(input);
            return computedHash.Equals(storedHash, StringComparison.OrdinalIgnoreCase);
        }


        /// <summary>
        /// 判断字符串是否包含大小写字母和数字,且长度大于7 
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static bool IsValidString(string input)
        {
            if (input == null || input.Length <= 7)
            {
                return false;
            }
            bool hasUpper = input.Any(char.IsUpper);
            bool hasLower = input.Any(char.IsLower);
            bool hasDigit = input.Any(char.IsDigit);
            return hasUpper && hasLower && hasDigit;
        }



        /// <summary>
        /// 判断字符串是否为url
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public static bool IsValidUrl(string url)
        {
            // 如果字符串为空或只包含空白字符,则返回false  
            if (string.IsNullOrWhiteSpace(url))
            {
                return false;
            }

            Regex UrlRegex = new Regex(
        @"^http://(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d{1,5})$",
        RegexOptions.IgnoreCase);

            return UrlRegex.IsMatch(url);
        }


        private static readonly Regex UrlRegex = new Regex(
       @"^(http(?:s)?://)?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(?::\d+)?(/[\w ./-]*)?$");
        /// <summary>
        /// 判断字符串是否为url
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public static bool IsPossibleUrlWithIpAndPort(string url)
        { 
            return UrlRegex.IsMatch(url);
        }


        private static readonly Regex Ipv4Regex = new Regex(
            @"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
        );
        /// <summary>
        /// 匹配IPv4地址  
        /// </summary>
        /// <param name="ip"></param>
        /// <returns></returns>
        public static bool IsValidIPv4(string ip)
        { 
            return Ipv4Regex.IsMatch(ip);
        }


    }

简易日志处理

public enum LogLevel
    {
        Log,
        Debug,
        Info,
        Warn,
        Error
    }

    public class SimpleLogger
    {
        private static string _baseLogPath;
        private static string _currentDateFolder;
        private static string logs = "Logs";


        private static string GetTodayDateString()
        {
            return DateTime.Now.ToString("yyyyMMdd");
        } 
        private static void CreateLogFolderIfNotExists()
        {
            string fullPath = System.IO.Path.Combine(_baseLogPath, _currentDateFolder);
            if (!System.IO.Directory.Exists(fullPath))
            {
                System.IO.Directory.CreateDirectory(fullPath);
            }
        }

        /// <summary>
        /// 写日志
        /// </summary>
        /// <param name="logLevel"></param>
        /// <param name="message"></param>
        public static void WriteLog(LogLevel logLevel, string message)
        { 
            string debugPath = AppDomain.CurrentDomain.BaseDirectory; // 写入文件夹路径
            string logPath = System.IO.Path.Combine(debugPath, logs);
            _baseLogPath = logPath;
            _currentDateFolder = GetTodayDateString();
            CreateLogFolderIfNotExists();
             
            string logFileName = $"{logLevel.ToString().ToLower()}_{_currentDateFolder}.log";
            string fullPath = System.IO.Path.Combine(_baseLogPath, _currentDateFolder, logFileName);

            using (System.IO.StreamWriter sw = System.IO.File.AppendText(fullPath))
            {
                sw.WriteLine($"{DateTime.Now}: [{logLevel.ToString()}] {message}");
            }
        }
    }
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值