String.Format:为什么这段代码不起作用?

时间:2014-03-17 10:23:52

标签: c# string.format

我正在使用这段代码获得FormatException

string yyyy = OPENING_DATE.Substring(0, 4);
string mm = OPENING_DATE.Substring(4, 2);
string dd = OPENING_DATE.Substring(6, 2);
ncbaccount.Date_Opened = string.Format("{1}/{2}/{3}",dd,mm,yyyy);

问题:OPENING_DATE就像'20140317'

解决方案:我想要一个像'17 / 03/2014'

这样的字符串

由于

3 个答案:

答案 0 :(得分:11)

您可以使用DateTime.ParseExact并提供日期字符串格式,而不是拆分日期字符串,然后格式化和解析,

DateTime date = 
     DateTime.ParseExact(OPENING_DATE, "yyyyMMdd", CultureInfo.InvariantCulture);

答案 1 :(得分:6)

将{1} / {2} / {3}替换为{0} / {1} / {2},因为它从0开始。

前:

string yyyy = OPENING_DATE.Substring(0, 4);
        string mm = OPENING_DATE.Substring(4, 2);
        string dd = OPENING_DATE.Substring(6, 2);
        ncbaccount.Date_Opened = string.Format("{0}/{1}/{2}", dd, mm, yyyy);

答案 2 :(得分:0)

仅更改此行

string.Format("{0}/{1}/{2}", dd, mm, yyyy);

你应该使用DateTime函数来解析日期和时间。