using System;
namespace Plane
{
public static class StringExtensions
{
///
/// 把字符串转换成其表示的日期。
///
/// 形如 yyyyMMdd 或 yyyyMMddHHmmss 的字符串。
/// 指定的字符串表示的日期。
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 两种形式的字符串!");
}
}
}