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 两种形式的字符串!");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|