Plane.Libraries/Plane/StringExtensions.cs
2017-02-27 02:04:13 +08:00

38 lines
1.4 KiB
C#

using System;
namespace Plane
{
public static class StringExtensions
{
/// <summary>
/// 把字符串转换成其表示的日期。
/// </summary>
/// <param name="value">形如 yyyyMMdd 或 yyyyMMddHHmmss 的字符串。</param>
/// <returns>指定的字符串表示的日期。</returns>
public static DateTime ToDateTime(this string value)
{
if (value == null) throw new ArgumentNullException(nameof(value));
if (value.Length == 8)
{
return new DateTime(
Convert.ToInt32(value.Substring(0, 4)),
Convert.ToInt32(value.Substring(4, 2)),
Convert.ToInt32(value.Substring(6, 2))
);
}
else if (value.Length == 14)
{
return new DateTime(
Convert.ToInt32(value.Substring(0, 4)),
Convert.ToInt32(value.Substring(4, 2)),
Convert.ToInt32(value.Substring(6, 2)),
Convert.ToInt32(value.Substring(8, 2)),
Convert.ToInt32(value.Substring(10, 2)),
Convert.ToInt32(value.Substring(12, 2))
);
}
throw new InvalidOperationException("String.ToDateTime 扩展方法只支持 yyyyMMdd 和 yyyyMMddHHmmss 两种形式的字符串!");
}
}
}