2016-02-26 103 views
0

我有一個字符串表示某種格式的日期,我希望格式不同。有人告訴我使用DateTime.(Try)ParseExact,所以我所做的:如何格式化日期時間格式不同?

var dateString = "2016-02-26"; 
var formatString = "dd/MM/yyyy"; 

var parsedDate = DateTime.ParseExact(dateString, formatString, null); 

你看,我要的日期格式爲dd/MM/yyyy,所以26/02/2016。但是,此代碼引發FormatException:

字符串未被識別爲有效的DateTime。

如何格式化日期時間?

回答

1

首先,DateTimes沒有格式。 DateTime包含一個時間點和一個標誌,指示該時刻是本地的,UTC還是未知的,就是這樣。

DateTime得到格式化的唯一時刻是當您將其值作爲字符串輸出時。

您提供(Try)ParseExact格式字符串是的日期(時間)的字符串進行解析是格式。請參閱MSDN: Custom Date and Time Format Strings瞭解如何編寫自己的格式字符串。

所以你要找來解析該字符串的代碼是這樣的,並再次,確保格式字符串輸入日期字符串完全的格式相匹配:

var dateString = "2016-02-26"; 
var formatString = "yyyy-MM-dd"; 

var parsedDate = DateTime.ParseExact(dateString, formatString, null); 

現在parsedDate持有DateTime值你可以在你想要的格式輸出(請注意,你必須躲避/,因爲它會被解釋爲「日期分隔符當前區域性」,上面的MSDN鏈接的解釋):

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

這將格式化所需格式的日期:

26/02/2016 
0

您可以使用此爲String日期

DateTime.ParseExact(dateString, format, provider); 

和供應商價值

CultureInfo provider = CultureInfo.InvariantCulture; 

Microsoft documentation

提到