diff --git a/Falcon.SugarApi.Test/StringExtendTest.cs b/Falcon.SugarApi.Test/StringExtendTest.cs index 2851890..1c9779e 100644 --- a/Falcon.SugarApi.Test/StringExtendTest.cs +++ b/Falcon.SugarApi.Test/StringExtendTest.cs @@ -1,13 +1,8 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Falcon.SugarApi; namespace Falcon.SugarApi.Test { + /// /// 字符串扩展方法测试 /// diff --git a/Falcon.SugarApi/StringExtend.cs b/Falcon.SugarApi/StringExtend.cs index 4da479d..ec0b773 100644 --- a/Falcon.SugarApi/StringExtend.cs +++ b/Falcon.SugarApi/StringExtend.cs @@ -39,17 +39,38 @@ namespace Falcon.SugarApi public static string[] SplitStr(this string? str, params char[] splitChars) => str.IsNullOrEmpty() ? Array.Empty() : str.Split(splitChars.Length == 0 ? new char[] { ',', ',', ';', ';', '.', '。' } : splitChars, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + /// - /// 将字符串转换为DateTime + /// 将字符串按格式转换为时间格式 /// - /// 表示日期时间的字符串 - /// 日期时间格式 - /// 一个DateTime对象。如果失败返回null - public static DateTime ToDateTime([NotNull] this string str, string dateTimeformat = "") { - if (dateTimeformat.IsNullOrEmpty()) { + /// 时间字符串 + /// 时间格式 + /// 区域特性.默认CultureInfo.InvariantCulture + /// 时间 + public static DateTime ToDateTime(this string str, string dateTimeFormat = "", CultureInfo? culture = null) { + culture ??= CultureInfo.InvariantCulture; + if (dateTimeFormat.IsNullOrEmpty()) { return DateTime.Parse(str); } - return DateTime.ParseExact(str, dateTimeformat, CultureInfo.CurrentCulture); + return DateTime.ParseExact(str, dateTimeFormat, culture); + } + /// + /// 尝试将特定格式字符串转换为DateTime类型 + /// + /// 时间字符串 + /// 时间格式 + /// 转换后的时间 + /// 区域特性.默认CultureInfo.InvariantCulture + /// 成功True,失败False + public static bool TryToDateTime(this string str, string dateTimeFormat, out DateTime dt, CultureInfo? culture = null) { + try { + dt = str.ToDateTime(dateTimeFormat, culture); + return true; + } + catch (Exception) { + dt = default; + return false; + } } } }