字符串扩展支持日期时间格式转换
This commit is contained in:
parent
641ebc880b
commit
231d546e5d
|
@ -1,13 +1,8 @@
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
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
|
namespace Falcon.SugarApi.Test
|
||||||
{
|
{
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 字符串扩展方法测试
|
/// 字符串扩展方法测试
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -39,17 +39,38 @@ namespace Falcon.SugarApi
|
||||||
public static string[] SplitStr(this string? str, params char[] splitChars)
|
public static string[] SplitStr(this string? str, params char[] splitChars)
|
||||||
=> str.IsNullOrEmpty() ? Array.Empty<string>() : str.Split(splitChars.Length == 0 ? new char[] { ',', ',', ';', ';', '.', '。' } : splitChars, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
|
=> str.IsNullOrEmpty() ? Array.Empty<string>() : str.Split(splitChars.Length == 0 ? new char[] { ',', ',', ';', ';', '.', '。' } : splitChars, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 将字符串转换为DateTime
|
/// 将字符串按格式转换为时间格式
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="str">表示日期时间的字符串</param>
|
/// <param name="str">时间字符串</param>
|
||||||
/// <param name="dateTimeformat">日期时间格式</param>
|
/// <param name="dateTimeFormat">时间格式</param>
|
||||||
/// <returns>一个DateTime对象。如果失败返回null</returns>
|
/// <param name="culture">区域特性.默认CultureInfo.InvariantCulture</param>
|
||||||
public static DateTime ToDateTime([NotNull] this string str, string dateTimeformat = "") {
|
/// <returns>时间</returns>
|
||||||
if (dateTimeformat.IsNullOrEmpty()) {
|
public static DateTime ToDateTime(this string str, string dateTimeFormat = "", CultureInfo? culture = null) {
|
||||||
|
culture ??= CultureInfo.InvariantCulture;
|
||||||
|
if (dateTimeFormat.IsNullOrEmpty()) {
|
||||||
return DateTime.Parse(str);
|
return DateTime.Parse(str);
|
||||||
}
|
}
|
||||||
return DateTime.ParseExact(str, dateTimeformat, CultureInfo.CurrentCulture);
|
return DateTime.ParseExact(str, dateTimeFormat, culture);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 尝试将特定格式字符串转换为DateTime类型
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="str">时间字符串</param>
|
||||||
|
/// <param name="dateTimeFormat">时间格式</param>
|
||||||
|
/// <param name="dt">转换后的时间</param>
|
||||||
|
/// <param name="culture">区域特性.默认CultureInfo.InvariantCulture</param>
|
||||||
|
/// <returns>成功True,失败False</returns>
|
||||||
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user