这是一个字符串日期:
dob = reader.GetValue(7).ToString();` return like "12/2/2012"
但我想将(在传递之前)转换为此格式"2012212"
,我已尝试
string newDate = dob.ToString("yyyMMdd")
但是我收到了以下错误:
最佳重载方法匹配 'string.ToString(System.IFormatProvider)有一些无效的参数
任何想法?
答案 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");
谢谢。