38 lines
1.4 KiB
C#
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 两种形式的字符串!");
|
|
}
|
|
}
|
|
}
|