Files
qrcodeService/QRCodeService/Extensions/StringExtension.cs
2021-02-25 10:39:30 +08:00

48 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace QRCodeService.Extensions
{
public static class StringExtension
{
public static byte[] ToMD5(this string value)
{
using (var md5 = MD5.Create())
{
var result = md5.ComputeHash(Encoding.UTF8.GetBytes(value));
return result;
}
}
public static DateTime? ToDate(this string dateTimeStr, string[] dateFmt)
{
// example: var dt = "2011-03-21 13:26".toDate(new string[]{"yyyy-MM-dd HH:mm",
// "M/d/yyyy h:mm:ss tt"});
const DateTimeStyles style = DateTimeStyles.AllowWhiteSpaces;
if (dateFmt == null)
{
var dateInfo = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat;
dateFmt = dateInfo.GetAllDateTimePatterns();
}
DateTime? result = null;
DateTime dt;
if (DateTime.TryParseExact(dateTimeStr, dateFmt,
CultureInfo.InvariantCulture, style, out dt)) result = dt;
return result;
}
public static DateTime? ToDate(this string dateTimeStr, string dateFmt = null)
{
// example: var dt="2011-03-21 13:26".toDate("yyyy-MM-dd HH:mm");
// or simply var dt="2011-03-21 13:26".toDate();
// call overloaded function with string array param
string[] dateFmtArr = dateFmt == null ? null : new string[] { dateFmt };
return ToDate(dateTimeStr, dateFmtArr);
}
}
}