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}");}}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11736.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11736.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11736.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt---文件系統

一、基本文件操作 1. QFile對文件進行讀和寫 QFile file( path 文件路徑) 讀&#xff1a; file.open(打開方式) QlODevice::readOnly 全部讀取->file.readAll()&#xff0c;按行讀->file.readLine()&#xff0c;atend()->判斷是否讀到文件尾 …

Java網絡編程基礎

Java網絡編程基礎主要涉及進程間通信、網絡通信協議、IP地址和端口以及Java提供的網絡應用編程接口等核心概念。 進程間通信是Java網絡編程的基礎。進程是運行中的程序&#xff0c;而進程間通信則是指不同進程之間進行數據交換和共享信息的過程。在Java中&#xff0c;進程間的…

STM32存儲左右互搏 USB接口FATS文件讀寫U盤

STM32存儲左右互搏 USB接口FATS文件讀寫U盤 STM32的USB接口可以例化為Host主機從而對U盤進行操作。SD卡/MicroSD/TF卡也可以通過讀卡器轉換成U盤使用。這里介紹STM32CUBEIDE開發平臺HAL庫實現U盤FATS文件訪問的例程。 USB接口介紹 常見的USB接口電路部分相似而有不同的連接器…

K8S -----二進制搭建 Kubernetes v1.20

目錄 一、準備環境 1.1 修改主機名 1.2 關閉防火墻&#xff08;三臺一起&#xff0c;這里只展示master01&#xff09; 1.3 在master添加hosts&#xff08;依舊是三臺一起&#xff09; 1.4 調整內核參數并開啟網橋模式 二、部署docker引擎 三、部署 etcd 集群 1.在mast…

15.JUC原子類

文章目錄 JUC原子類1.JUC中的Atomic原子操作包1.1. 基本原子類&#xff08;Basic Atomic Classes&#xff09;1.2. 數組原子類&#xff08;Array Atomic Classes&#xff09;1.3. 引用原子類&#xff08;Reference Atomic Classes&#xff09;4. 字段更新原子類&#xff08;Fie…

StackQueue+泛型簡單理解

&#x1f341; 個人主頁&#xff1a;愛編程的Tom&#x1f4ab; 本篇博文收錄專欄&#xff1a;Java專欄&#x1f449; 目前其它專欄&#xff1a;c系列小游戲 c語言系列--萬物的開始_ &#x1f389; 歡迎 &#x1f44d;點贊?評論?收藏&#x1f496;三連支持一…

ddpm Denoising Diffusion Probabilistic Model 學習筆記

目錄 Stable Diffusion 文章的貢獻抽象出來就兩個 潛空間上做擴散生成 ddpm(Denoising Diffusion Probabilistic Model)學習筆記 算法原理 unet預測噪聲 unet推理過程 重參數化技巧 &#xff08;1&#xff09;利用前一時刻的 xt-1 得到任意時刻的噪聲圖片 xt&#xff…

LeetCode2215找出兩數組的不同

題目描述 給你兩個下標從 0 開始的整數數組 nums1 和 nums2 &#xff0c;請你返回一個長度為 2 的列表 answer &#xff0c;其中&#xff1a;answer[0] 是 nums1 中所有 不 存在于 nums2 中的 不同 整數組成的列表。answer[1] 是 nums2 中所有 不 存在于 nums1 中的 不同 整數組…

Linux poweroff命令教程:如何實現一鍵關機(附實例詳解和注意事項)

Linux poweroff命令介紹 poweroff命令是用來關閉系統的。當你執行這個命令時&#xff0c;它會發送一個信號給系統&#xff0c;告訴系統關閉所有的進程&#xff0c;然后關閉系統。這個命令非常有用&#xff0c;特別是在你需要遠程關閉系統&#xff0c;或者你的系統沒有圖形用戶…

Autosar架構

藍框那種叫component&#xff0c;綠框的叫function cluster。 接口 有三種接口&#xff0c;RTE跟SWC之間鏈接的叫Autosar Interface&#xff0c;RTE跟BSW的Components鏈接是Standardized Interface&#xff0c;RTE跟BSW的services鏈接的是Standardized Autosar Interface。 St…

項目部署到線上proxytable代理失效nginx報404的問題

我的項目是在vue的config文件夾中的index.js中配置了接口地址 &#xff0c;本地跑的時候都能訪問&#xff0c;放到線上就報404&#xff1b; module.exports {dev: {// PathsassetsSubDirectory: static,assetsPublicPath: /,proxyTable: {/xxx: {target: http://xxxxxxxx:xxx…

分享四種CAD圖紙加密方法,嚴防盜圖

在數字化時代&#xff0c;cad圖紙的盜用和非法傳播問題日益突出。對于企業和設計師來說&#xff0c;保護設計成果的安全性和原創性&#xff0c;采取有效的cad加密方法至關重要。本文將分享四種cad加密方法&#xff0c;幫助您嚴防盜圖&#xff0c;保護圖紙安全。 使用cad軟件內…

網絡協議的分類

1.概要 網絡協議可以分為三類&#xff1a; 封裝協議路由協議功能類協議 2.分類說明 OSPF報文直接調用_ IP協議__協議進行封裝&#xff0c;以目的地址_244.0.0.5 __發送到所有的OSPF路由器? 244.0.0.1 所有主機&#xff1b;244.0.0.2 所有路由器&#xff1b;244.0.0.6 指定…

【前端每日一題】day5

JS 實現繼承的幾種方式 在JavaScript中&#xff0c;實現繼承的幾種方式包括原型鏈繼承、構造函數繼承、組合繼承、原型式繼承、寄生式繼承和組合式繼承。 原型鏈繼承&#xff1a; function Parent() {this.name Parent; } Parent.prototype.sayHello function() {console.…

當它還是幼生期的時候,及早離開它!

當我們有豐富的精神生活時&#xff0c;充實的知識吸收儲備時&#xff0c;為自己的每一點進步而欣慰時&#xff0c;我們就不會有失敗的憂慮。也不會有孤單的自憐。 沒有人是弱者&#xff0c;每個人都有自己活著的方式&#xff0c;當你內心強大時&#xff0c;你會尊重每一個“弱者…

Vue+springboot的批量刪除功能

vue前臺 <div style"margin-bottom: 10px"><el-button type"primary" plain click"handleAdd">新增</el-button><el-button click"delBatch" type"danger" plain style"margin-left: 5px"…

Spring Cloud 背后技術詳解

Spring Cloud 是基于 Spring Boot 的一套微服務架構解決方案。它為開發者提供了一系列的工具&#xff0c;用于快速構建分布式系統中的一些常見模式&#xff08;例如配置管理、服務發現、斷路器等&#xff09;。Spring Cloud 利用 Spring Boot 的自動配置和獨立運行能力&#xf…

C語言例題41、八進制轉換為十進制

#include<stdio.h>void main() {int x;printf("請輸入一個8進制整數&#xff1a;");scanf("%o", &x);printf("轉換成十進制后的整數為%d\n", x); }運行結果&#xff1a; 本章C語言經典例題合集&#xff1a;http://t.csdnimg.cn/FK0Qg…

Java基礎(33)Java Web攔截器作用和用法

Java Web攔截器&#xff08;Interceptor&#xff09;是Java Web開發中一個重要的概念&#xff0c;它允許開發者在處理HTTP請求和響應之前或之后執行特定的代碼&#xff0c;從而實現如權限檢查、日志記錄、事務管理等功能。攔截器可以作用于Java EE的Servlet、Spring框架、Strut…

redis試題按知識點歸類(四)

十六、實戰應用 1.如何使用 Redis 存儲用戶會話&#xff1f; 2.Redis 在電子商務平臺中的應用是什么&#xff1f; 3.如何使用 Redis 進行實時數據分析&#xff1f; 十七、面試題綜合 1.描述一次你解決 Redis 性能問題的經歷。 2.你如何理解 Redis 中的“單線程”模型&…