我有一个日期字符串,格式为"30/01/2018", 我想要的格式是"2018/01/30"
我尝试了以下代码:
DateTime.Parse(startDate.Text.ToString()).ToString("yyyy/MM/dd");
and
DateTime.ParseExact(startDate.Text.ToString(),"dd/MM/yyyy").ToString("yyyy/MM/dd");
但是没有生效。 还有其他的解决方案吗?
试试这样做
string newFormat = DateTime.ParseExact("30/01/2018", "dd/MM/yyyy", CultureInfo.InvariantCulture)
.ToString("yyyy/MM/dd", CultureInfo.InvariantCulture);
string strOldFormat = "30/01/2018";
string[] strArrOldFormat = strOldFormat.Split('/');
string strNewFormat = strArrOldFormat[2] + "/" + strArrOldFormat[1] + "/" + strArrOldFormat[0];
转义您的斜杠(并使用具有ParseExact
的Culture)
DateTime.ParseExact("30/01/2018","dd/MM/yyyy", CultureInfo.InvariantCulture)
.ToString(@"yyyy\/MM\/dd")
或者在ToString
中使用InvariantCulture
而不是转义斜线:
...ToString(@"yyyy/MM/dd", CultureInfo.InvariantCulture)
/
是日期的特殊格式字符:
自定义日期和时间格式字符串 - "/" 自定义格式说明符
“/”自定义格式说明符代表日期分隔符,用于区分年、月和日。适当的本地化日期分隔符从当前或指定文化的DateTimeFormatInfo.DateSeparator属性中检索。@"string"
格式,反斜杠不需要转义。 - grek40ToString()
方法中使用 CultureInfo.InvariantCulture
,您就不必担心日期分隔符的文化差异。 - Nino尝试使用以下示例代码:
var actualStartDate = DateTime.ParseExact(startDate.Text.ToString(),"yyyy/MM/dd", CultureInfo.InvariantCulture);
string dateString = startDate.Text.ToString();
string format="yyyy/MM/dd";
string result;
CultureInfo provider = CultureInfo.InvariantCulture;
result = DateTimeOffset.ParseExact(dateString, format, provider).ToString();
,保留html,不要解释。
string result = DateTimeOffset.ParseExact(startDate.Text.ToString(),"yyyy/MM/dd", CultureInfo.InvariantCulture).ToString();
更多信息在这里
String.Format("{0: yyyy/MM/dd}", yourDate);
startDate.Text
中有什么内容 - sujith karivelil