.字符串转日期对象

方法一 :

#region 字符串转日期对象,各种字符串日期类型都能转成日期对象
 /// <summary>
 ///  字符串转日期对象,各种字符串日期类型都能转成日期对象
 /// </summary>
 /// <Coder>TX:2011-10-12</Coder>
 /// <Modifier></Modifier>
 /// <param name="strDateTime">日期字符串类型</param>
 /// <returns>日期对象</returns>
 public static DateTime StringToDataTime(string strDateTime)
 {
  try
  {
   string[] strFormat = new string[]
          {
              "yyyy/MM/dd",
              "yyyy-MM-dd",
              "yyyy年MM月dd日",
              "yyyyMMdd",
              "yyyy-MM-dd HH:mm:ss",
              "yyyy/MM/dd HH:mm:ss",
              "yyyy/MM/dd H:mm:ss",
              "yyyy/MM/dd H:m:ss",
              "yyyy/MM/dd HH:m:ss",
              "yyyy/MM/dd HH:mm:s",
              "yyyy/MM/dd H:m:s",
              "yyyy/M/dd",
              "yyyy/M/d",
              "yyyy-M-dd",
              "yyyy-MM-d",
              "yyyy-M-d",
              "yyyy年M月dd日",
              "yyyy年MM月d日",
              "yyyy年M月d日",
              "yyyy年M月d日 HH时mm分",
              "yyyy年M月d日 H时mm分",
              "yyyy年M月d日 HH时mm分ss秒",
              "yyyy年M月d日 HH时mm分s秒",
              "yyyy年M月d日 H时mm分s秒",
              "yyyy年M月d日 HH时m分ss秒",
              "yyyy年M月d日 HH时m分s秒",
              "yyyy年M月d日 H时m分s秒",
              "yyyy年M月d日 HH时m分ss秒",
              "yyyy年M月d日 H时mm分ss秒",
              "yyyy年M月d日 HH时m分",
              "yyyy年M月d日 H时m分",
              "yyyy年MM月d日 HH时mm分",
              "yyyy年MM月d日 H时mm分",
              "yyyy年MM月d日 HH时mm分ss秒",
              "yyyy年MM月d日 HH时mm分s秒",
              "yyyy年MM月d日 HH时m分ss秒",
              "yyyy年MM月d日 H时mm分s秒",
              "yyyy年MM月d日 HH时m分s秒",
              "yyyy年MM月d日 H时m分s秒",
              "yyyy年MM月d日 HH时m分ss秒",
              "yyyy年MM月d日 H时mm分ss秒",
              "yyyy年MM月d日 HH时m分",
              "yyyy年MM月d日 H时m分",
              "yyyy年MM月dd日 HH时mm分",
              "yyyy年MM月dd日 H时mm分",
              "yyyy年MM月dd日 HH时mm分ss秒",
              "yyyy年MM月dd日 HH时mm分s秒",
              "yyyy年MM月dd日 HH时m分ss秒",
              "yyyy年MM月dd日 H时mm分s秒",
              "yyyy年MM月dd日 HH时m分s秒",
              "yyyy年MM月dd日 H时m分s秒",
              "yyyy年MM月dd日 HH时m分ss秒",
              "yyyy年MM月dd日 H时mm分ss秒",
              "yyyy年MM月dd日 HH时m分",
              "yyyy年MM月dd日 H时m分",
              "yyyy-MM-dd H:mm:ss",
              "yyyy-MM-dd HH:m:ss",
              "yyyy-MM-dd HH:mm",    
              "yyyy-MM-dd H:mm",
              "yyyy-MM-dd H:m",
              "yyyy-MM-dd H:m:s",
              "yyyy-MM-dd HH:m:s",
              "yyyy-MM-dd H:m:ss",
              "yyyy/MM","yyyy-MM",      
              "yyyy年MM月",
              "yyyy/M",
              "yyyy-M",
              "yyyy年M月"
          };

   DateTime objDateTime;

   for (int i = 0; i < strFormat.Length; i++)
   {
    if (DateTime.TryParseExact(strDateTime, strFormat[i], System.Globalization.CultureInfo.CurrentCulture, DateTimeStyles.None, out objDateTime))
    {
     return objDateTime;
    }
   }
  }
  catch (Exception ex)
  {
   ErrorLog.RecordExceptionToFile(ex);

  }

  return DateTime.MinValue;
 }
 #endregion

 

方法二:

#region 字符串转日期对象,各种字符串日期类型都能转成日期对象
  /// <summary>
  ///  字符串转日期对象,各种字符串日期类型都能转成日期对象
  /// </summary>
  /// <Coder>TX:2011-10-12</Coder>
  /// <Modifier></Modifier>
  /// <param name="strDateTime">日期字符串类型</param>
  /// <returns>日期对象</returns>
  public static DateTime StringToDataTime(string strDateTime)
  {
   try
   {
    string strDateTimeTrim = strDateTime.Trim(); //去掉前后空格
    string[] arrDateAndTime = strDateTimeTrim.Split(' ');  //判断是否由日期和时间组成
    string strNewDate = string.Empty;
    string strNewTime = string.Empty;
    string strNewDateTime = string.Empty;

    if (arrDateAndTime.Length == 2) //如果有日期和时间组成
    {
     string[] arrDate = arrDateAndTime[0].Split(new char[5] { '-', '/', '年', '月', '日' });
     string[] arrTime = arrDateAndTime[1].Split(new char[4] { ':', '时', '分', '秒' });

     if (arrDate.Length == 4) //如果是年月日分割的话后面还有个空格需要考虑
     {
      if (arrDate[arrDate.Length - 1].Length == 0)
      {
       strNewDate = arrDate[0] + "-" + arrDate[1] + "-" + arrDate[2];
      }
      else
      {
       return DateTime.MinValue;
      }
     }
     else if (arrDate.Length == 3)
     {
      if (arrDate[arrDate.Length - 1].Length == 0)
      {
       return DateTime.MinValue;
      }
      else
      {
       strNewDate = arrDate[0] + "-" + arrDate[1] + "-" + arrDate[2];
      }
     }
     else
     {
      return DateTime.MinValue;
     }

     if (arrTime.Length == 4)   //如果是以时', '分', '秒'进行分隔的时候后面还有个空格需要考虑
     {
      if (arrTime[3].Length == 0)
      {
       strNewTime = arrTime[0] + ":" + arrTime[1] + ":" + arrTime[2];
      }
     }
     else if (arrTime.Length == 3)
     {
      if (arrTime[2].Length == 0)
      {
       strNewTime = arrTime[0] + ":" + arrTime[1] + ":" + "00";
      }
      else
      {
       strNewTime = arrTime[0] + ":" + arrTime[1] + ":" + arrTime[2];
      }
     }
     else if (arrTime.Length == 2)
     {
      if (arrTime[1].Length == 0)
      {
       strNewTime = arrTime[0] + ":" + "00" + ":" + "00";
      }
      else
      {
       strNewTime = arrTime[0] + ":" + arrTime[1] + ":" + "00";
      }
     }
     else if (arrTime.Length == 1)
     {
      if (arrTime[1].Length != 0)
      {
       strNewTime = arrTime[0] + ":" + "00" + ":" + "00";
      }
     }
     else
     {
      return DateTime.MinValue;
     }

     strNewDateTime = strNewDate + " " + strNewTime;

     return Convert.ToDateTime(strNewDateTime);
    }
    else if (arrDateAndTime.Length == 1) //如果只有日期
    {
     string[] arrDate = arrDateAndTime[0].Split(new char[5] { '-', '/', '年', '月', '日' });

     if (arrDate.Length == 3)
     {
      strNewDate = arrDate[0] + "-" + arrDate[1] + "-" + arrDate[2];
     }
     else
     {
      return DateTime.MinValue;
     }

     return Convert.ToDateTime(strNewDate);
    }
    else  //如果分隔出了为0 或者大于3 说明 该字符串为空或者里面包括多个空格
    {
     return DateTime.MinValue;
    }
   }
   catch (Exception ex)
   {
    ErrorLog.RecordExceptionToFile(ex);

    return DateTime.MinValue;
   }
  }
  #endregion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值