将字符串日期解析为特定格式

时间:2016-06-14 07:47:02

标签: c# asp.net

这是一个字符串日期:

dob = reader.GetValue(7).ToString();` return like "12/2/2012"

但我想将(在传递之前)转换为此格式"2012212",我已尝试

string newDate = dob.ToString("yyyMMdd")

但是我收到了以下错误:

  

最佳重载方法匹配   'string.ToString(System.IFormatProvider)有一些无效的参数

任何想法?

5 个答案:

答案 0 :(得分:1)

如果基础返回类型为DateTime

,则可以使用SqlDataReader.GetDateTime

然后你只需要..

reader.GetDateTime(7).ToString("yyyyMdd");

如果它以字符串形式存储和接收,那么我建议先转换为DateTime然后查找特定格式。

    var date = DateTime.ParseExact(dob, "dd/M/yyyy",CultureInfo.InvariantCulture);
    var formattedDate = date.ToString("yyyyMdd");

答案 1 :(得分:1)

  

获得输出的确切方法,但它会起作用。

   string dob = "12/2/2012";
   string[] d1 = dob.Split('/');
   string s = d1[2] + d1[1] + d1[0];

答案 2 :(得分:0)

DateTime.ParseExact(reader.GetValue(7), "dd/M/dd", System.Globalization.CultureInfo.InvariantCulture).ToString("yyyyMMdd");

答案 3 :(得分:0)

如果您在String中的日期格式为“ddMMyyyy”并想将其转换为“yyyyMMdd”,您可以这样做:

DateTime dt = DateTime.ParseExact(dob, "ddMMyyyy", 
                                  CultureInfo.InvariantCulture);
dt.ToString("yyyyMMdd");

答案 4 :(得分:-1)

您可以尝试以下方法将字符串转换为日期。

IFormatProvider culture = new CultureInfo("en-US", true);   
dob = DateTime.ParseExact(reader.GetValue(7).ToString(), "dd/MM/yyyy", culture).ToString("yyyyMMdd");

谢谢。