指定した書式で文字列をDateTimeに変換

■使用例

var date = DateTimeParser.ParseNullable("20120720", "yyyyMMdd");

■出力結果
2012/07/20 0:00:00


■コード

public class DateTimeParser
{
  /// <summary>
  /// 指定した書式に従いDateTimeに変換。変換できない場合は例外が発生。
  /// </summary>
  /// <param name="s">対象文字列</param>
  /// <param name="format">書式文字列</param>
  /// <returns>変換結果</returns>
  public static DateTime Parse(string s, string format)
  {
    return DateTime.ParseExact(
      s,
      format,
      System.Globalization.DateTimeFormatInfo.InvariantInfo,
      System.Globalization.DateTimeStyles.None);
  }

  /// <summary>
  /// 指定した書式に従いDateTimeに変換。変換の成否を戻り値で返す。
  /// </summary>
  /// <param name="s">対象文字列</param>
  /// <param name="format">書式文字列</param>
  /// <param name="result">変換結果</param>
  /// <returns>変換の成否</returns>
  public static bool TryParse(string s, string format, out DateTime result)
  {
    return DateTime.TryParseExact(
      s,
      format,
      System.Globalization.DateTimeFormatInfo.InvariantInfo,
      System.Globalization.DateTimeStyles.None,
      out result);
  }
  
  /// <summary>
  /// 指定した書式に従いDateTimeに変換。変換できない場合はnullを返す。
  /// </summary>
  /// <param name="s">対象文字列</param>
  /// <param name="format">書式文字列</param>
  /// <returns>変換結果</returns>
  public static DateTime? ParseNullable(string s, string format)
  {
    DateTime result;
    if (TryParse(s, format, out result))
    {
      return result;
    }

    return null;
  }
}