我有一个日期字符串,如“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;
但没有奏效。 还有其他解决方案吗?
答案 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);