C# 如何在asp.net中更改日期字符串的格式
我有一个日期字符串,如“30/01/2018” 我想要像“2018/01/30”这样的格式 我试过以下几句话C# 如何在asp.net中更改日期字符串的格式,c#,asp.net,date,datetime,tostring,C#,Asp.net,Date,Datetime,Tostring,我有一个日期字符串,如“30/01/2018” 我想要像“2018/01/30”这样的格式 我试过以下几句话 DateTime.Parse(startDate.Text.ToString()).ToString("yyyy/MM/dd"); 及 DateTime.ParseExact(startDate.Text.ToString(),“dd/MM/yyyy”).ToString(“yyy/MM/dd”) 但是没有起作用。 还有其他解决方案吗?如果您希望以字符串形式输出。为什么不分开重新安排呢
DateTime.Parse(startDate.Text.ToString()).ToString("yyyy/MM/dd");
及
DateTime.ParseExact(startDate.Text.ToString(),“dd/MM/yyyy”).ToString(“yyy/MM/dd”)代码>
但是没有起作用。
还有其他解决方案吗?如果您希望以字符串形式输出。为什么不分开重新安排呢
string strOldFormat = "30/01/2018";
string[] strArrOldFormat = strOldFormat.Split('/');
string strNewFormat = strArrOldFormat[2] + "/" + strArrOldFormat[1] + "/" + strArrOldFormat[0];
转义斜杠(并使用具有ParseExact
的区域性)
或者对ToString
使用InvariantCulture
,而不是转义斜杠:
...ToString(@"yyyy/MM/dd", CultureInfo.InvariantCulture)
原因是,/
是日期的特殊格式字符:
“/”自定义格式说明符表示日期分隔符,用于区分年、月和日。从当前或指定区域性的DateTimeFormatInfo.DateSeparator属性检索适当的本地化日期分隔符
像这样试试
string newFormat = DateTime.ParseExact("30/01/2018", "dd/MM/yyyy", CultureInfo.InvariantCulture)
.ToString("yyyy/MM/dd", CultureInfo.InvariantCulture);
string result = DateTimeOffset.ParseExact(startDate.Text.ToString(),"yyyy/MM/dd", CultureInfo.InvariantCulture).ToString();
你可以试试这个代码
string dateString = startDate.Text.ToString();
string format="yyyy/MM/dd";
string result;
CultureInfo provider = CultureInfo.InvariantCulture;
result = DateTimeOffset.ParseExact(dateString, format, provider).ToString();
或者你可以像这样把它捆成一行
string newFormat = DateTime.ParseExact("30/01/2018", "dd/MM/yyyy", CultureInfo.InvariantCulture)
.ToString("yyyy/MM/dd", CultureInfo.InvariantCulture);
string result = DateTimeOffset.ParseExact(startDate.Text.ToString(),"yyyy/MM/dd", CultureInfo.InvariantCulture).ToString();
更多信息请尝试使用以下示例代码:-
var actualStartDate = DateTime.ParseExact(startDate.Text.ToString(),"yyyy/MM/dd", CultureInfo.InvariantCulture);
你可以用这个
String.Format("{0: yyyy/MM/dd}", yourDate);
您在startDate.Text中拥有的内容
您的代码使用它执行的服务器或客户机的默认区域设置。如果区域设置无法理解字符串的格式,则无法将其转换为正确的日期时间值。此代码运行的区域设置是什么?(顺便说一句,文本已经是一个字符串属性,对其调用ToString没有意义)您是否要将其传递给一个新变量?同样,只有两个参数的ParseExact也没有重载,第一个示例也是如此。如果不添加CultureInfo参数StartDate.Text=“30/01/2018”@un-Lucky,则两者都不会编译。需要转义的是反斜杠字符,而不是正斜杠。@Steve编辑是否回答了您的问题?反斜杠不需要使用@“string”
进行转义,也不需要转义。只需在ToString()
方法中使用CultureInfo.InvariantCulture
,您就不必担心区域性的日期分隔符了。@grek40因为您不需要在第一个dd/MM/yyyy之前使用逐字字符,所以不需要在second@Nino是的,我已经提到这是第二个选择。。。但同样有效的方法是转义一个特殊字符,以便按字面意思使用:)更多信息