如何在asp.net中更改日期字符串的格式

时间:2018-01-30 07:35:39

标签: c# asp.net date datetime tostring

我有一个日期字符串,如“30/01/2018” 我想要一个像“2018/01/30”

这样的格式

我尝试了以下几行,

DateTime.ParseExact(startDate.Text.ToString(),"dd/MM/yyyy").ToString("yyyy/MM/dd");

private FirstTabFragment firstTabFragment; private ThirdTabFragment thirdTabFragment; private SecondTabFragment secondTabFragment;

但没有奏效。 还有其他解决方案吗?

6 个答案:

答案 0 :(得分:3)

逃避斜线(并使用带有ParseExact的文化)

DateTime.ParseExact("30/01/2018","dd/MM/yyyy", CultureInfo.InvariantCulture)
    .ToString(@"yyyy\/MM\/dd")

或者使用InvariantCulture代替ToString而不是转义斜杠:

...ToString(@"yyyy/MM/dd", CultureInfo.InvariantCulture)

原因是,/是日期的特殊格式字符:

Custom Date and Time Format Strings - The "/" custom format specifier

  

“/”自定义格式说明符表示日期分隔符,用于区分年,月和日。从当前或指定区域性的DateTimeFormatInfo.DateSeparator属性中检索适当的本地化日期分隔符。

答案 1 :(得分:3)

试试这个

string newFormat = DateTime.ParseExact("30/01/2018", "dd/MM/yyyy", CultureInfo.InvariantCulture)
    .ToString("yyyy/MM/dd", CultureInfo.InvariantCulture);

答案 2 :(得分:2)

如果要输出字符串。为什么不拆分和重新安排?

string strOldFormat = "30/01/2018";
string[] strArrOldFormat = strOldFormat.Split('/');
string strNewFormat = strArrOldFormat[2] + "/" + strArrOldFormat[1] + "/" + strArrOldFormat[0];

答案 3 :(得分:1)

你可以试试这段代码

string dateString = startDate.Text.ToString();
string format="yyyy/MM/dd"; 
string result;
CultureInfo provider = CultureInfo.InvariantCulture;
result = DateTimeOffset.ParseExact(dateString, format, provider).ToString();

或者您可以将其捆绑成一行,如下所示

string result = DateTimeOffset.ParseExact(startDate.Text.ToString(),"yyyy/MM/dd", CultureInfo.InvariantCulture).ToString();

更多信息here

答案 4 :(得分:1)

尝试使用以下示例代码: -

var  actualStartDate = DateTime.ParseExact(startDate.Text.ToString(),"yyyy/MM/dd", CultureInfo.InvariantCulture);

答案 5 :(得分:0)

你可以使用它;

String.Format("{0: yyyy/MM/dd}", yourDate);