我有一些行中的文本,如yyyymmdd (例如: 20181211),我需要将其转换为dd/MM/yyyy
我正在使用:
cashRow["BusinessDate"] = Convert.ToDateTime(row.Cells[ClosingDate.Index].Value.ToString()).ToString("dd/MM/yyyy");我得到一个错误“字符串没有被识别为有效的DateTime。你知道我哪里出错了吗?”
发布于 2018-12-17 13:38:41
您需要使用ParseExact (或TryParseExact)来解析日期:
var date = "20181217";
var parsedDate = DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
var formattedDate = parsedDate.ToString("dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture)在这里,我们告诉ParseExact期望yyyyMMdd格式的日期,然后告诉它将解析后的日期格式化为dd/MM/yyyy格式。
将其应用于您的代码:
cashRow["BusinessDate"] = DateTime.ParseExact(row.Cells[ClosingDate.Index].Value.ToString(), "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToString("dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);发布于 2018-12-17 13:38:58
您必须使用ParseExact将您的yyyyMMdd字符串转换为DateTime,如下所示,然后一切正常。
cashRow["BusinessDate"] = DateTime.ParseExact(row.Cells[ClosingDate.Index].Value.ToString(), "yyyyMMdd", CultureInfo.InvariantCulture).ToString("dd/MM/yyyy");发布于 2018-12-17 13:40:01
因为您已经知道输入yyyyMMdd的确切格式(例如: 20181211),所以只需将其提供给DateTime.ParseExact(),然后在返回的DateTime对象上调用ToString()。
string YourOutput = DateTime.ParseExact(p_dates, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToString("dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);https://stackoverflow.com/questions/53809405
复制相似问题