C# 错误日期格式转正确日期格式

 
 
 
 
 
 
 
private void button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox1.Text))
{
string newDate;
ConvertDate(textBox1.Text, out newDate);
textBox2.Text = newDate;
}
}
 
public bool ConvertDate(string strStart, out string newDate)
{
string longFormat = "yyyy-MM-dd HH:mm:ss", shortFormat = "yyyy-MM-dd";
newDate = strStart;
while (true)
{
if (newDate.IndexOf("//") >= 0)
newDate = newDate.Replace("//", "/");
else if (newDate.IndexOf(".") >= 0)
newDate = newDate.Replace(".", "/");
else if (newDate.IndexOf("。") >= 0)
newDate = newDate.Replace("。", "/");
else if (newDate.IndexOf("-") >= 0)
newDate = newDate.Replace("-", "/");
else if (newDate.IndexOf("、") >= 0)
newDate = newDate.Replace("、", "/");
else if (newDate.IndexOf("|") >= 0)
newDate = newDate.Replace("|", "/");
else if (newDate.IndexOf(":") >= 0)
newDate = newDate.Replace(":", ":");
else
break;
}
try
{
newDate = Convert.ToDateTime(newDate).ToString(longFormat);
return true;
}
catch
{
try
{
string[] str = newDate.Split(' ');
if (str.Count() > 0)
{
string[] sDate = str[0].Split('/');
if (sDate.Count() >= 3)
{
try
{
newDate = sDate[0] + "-" + sDate[1] + "-" + sDate[2];
if (str.Count() > 1)
{
newDate += " " + str[1];
newDate = Convert.ToDateTime(newDate).ToString(longFormat);
}
else
newDate = Convert.ToDateTime(newDate).ToString(shortFormat);
return true;
}
catch
{
newDate = sDate[2] + "-" + sDate[1] + "-" + sDate[0];
if (str.Count() > 1)
{
newDate += " " + str[1];
newDate = Convert.ToDateTime(newDate).ToString(longFormat);
}
else
newDate = Convert.ToDateTime(newDate).ToString(shortFormat);
return true;
}
}
}
}
catch
{
}
}
 
while (true)
{
if (strStart.IndexOf("//") >= 0)
strStart = strStart.Replace("//", "");
else if (strStart.IndexOf(".") >= 0)
strStart = strStart.Replace(".", "");
else if (strStart.IndexOf("。") >= 0)
strStart = strStart.Replace("。", "");
else if (strStart.IndexOf("-") >= 0)
strStart = strStart.Replace("-", "");
else if (strStart.IndexOf("、") >= 0)
strStart = strStart.Replace("、", "");
else if (strStart.IndexOf("|") >= 0)
strStart = strStart.Replace("|", "");
else if (strStart.IndexOf(":") >= 0)
strStart = strStart.Replace(":", "");
else if (strStart.IndexOf(":") >= 0)
strStart = strStart.Replace(":", "");
else
break;
}
try
{
//当strStart = "20121010" 这种类型
IFormatProvider ifp = new CultureInfo("zh-CN", true).DateTimeFormat;
DateTime dt = DateTime.ParseExact(strStart, "yyyyMMdd", ifp);
newDate = dt.ToString(shortFormat);
return true;
}
catch { }
try
{
//当strStart = "201210101230" 这种类型
IFormatProvider ifp = new CultureInfo("zh-CN", true).DateTimeFormat;
DateTime dt = DateTime.ParseExact(strStart, "yyyyMMddHHmm", ifp);
newDate = dt.ToString(longFormat);
return true;
}
catch { }
try
{
//当strStart = "20121010121320" 这种类型
IFormatProvider ifp = new CultureInfo("zh-CN", true).DateTimeFormat;
DateTime dt = DateTime.ParseExact(strStart, "yyyyMMddHHmmss", ifp);
newDate = dt.ToString(longFormat);
return true;
}
catch { }
try
{
//当strStart = "10102012" 这种类型
IFormatProvider ifp = new CultureInfo("zh-CN", true).DateTimeFormat;
DateTime dt = DateTime.ParseExact(strStart, "ddMMyyyy", ifp);
newDate = dt.ToString(shortFormat);
return true;
}
catch (Exception ex)
{
throw ex;
}
}

转载于:https://www.cnblogs.com/zishen/p/5896309.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值