如何格式化date时间格式不同?

我有一个string表示一个特定格式的date,我希望格式不同。 有人告诉我使用DateTime.(Try)ParseExact ,所以我做了:

 var dateString = "2016-02-26"; var formatString = "dd/MM/yyyy"; var parsedDate = DateTime.ParseExact(dateString, formatString, null); 

你看,我想格式化date为dd/MM/yyyy ,所以26/02/2016 。 但是,这段代码会抛出一个FormatException:

string未被识别为有效的date时间。

我如何格式化date时间不同?

首先,DateTimes没有格式。 date时间包含一个时间点和一个标志,指示该时刻是本地的,UTC还是未知的,就是这样。

DateTime得到格式化的唯一时刻是当你输出一个string的值。

您提供给(Try)ParseExact 的格式string是要parsing的date(时间)string的格式 。 请参阅MSDN:自定义date和时间格式string以了解如何编写自己的格式string。

所以你正在寻找parsing该string的代码是这样的,并再次确保格式string与inputdatestring的格式完全匹配:

 var dateString = "2016-02-26"; var formatString = "yyyy-MM-dd"; var parsedDate = DateTime.ParseExact(dateString, formatString, null); 

现在parsedDate包含一个DateTime值,你可以用你想要的格式输出(注意,你必须转义/ ,因为它会被解释为“当前文化的date分隔符”),如上面MSDN链接):

 var formattedDate = parsedDate.ToString("dd\\/MM\\/yyyy"); 

这将以所需格式格式化date:

 26/02/2016