2013-11-25 68 views
2
DateTime timeUtcWhenCommentPostingOccurred = getDateAndTimeOfCommentPostingInUtc(); 
DateTime estTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtcWhenCommentPostingOccurred, estZone); 


estTime.ToString("YYYY-MM-DD HH':'MM':'SS"); 

上述指定的格式顯示以下正確的日期格式:爲什麼「YYYY-MM-DD HH」:'MM':'SS'日期時間格式顯示不正確?

YYYY-11-DD 21:11:SS

爲什麼一年,一天,第二不能正常顯示?請就如何解決上述問題提供建議。

回答

10
  • 由於其較低的情況下y爲一年,不上的情況下Y
  • 同樣是日,它的下殼體d不大寫D
  • 隨着分鐘其小寫m不大寫M,大寫M是 爲一個月的情況下,
  • 對於秒它小寫s,不大寫S
  • 還要去掉單引號中的格式,因爲你不想逃避字符串文字

請參閱:Custom Date and Time Format Strings

所以,你的格式應該是:

estTime.ToString("yyyy-MM-dd HH:mm:ss"); 
3

Format strings是護理敏感。 YYYY,DDSS不是DateTime的識別格式字符串,因此它們被視爲文字字符。

使用

estTime.ToString("yyyy-MM-dd HH:mm:ss"); 

代替。

請注意區分MM(月)和mm(分鐘)。

1

C#區分大小寫,這種情況在日期時間格式字符串中有意義。

yyyy是當年,MM當月,dd當天和mm分鐘。大寫HH表示24小時制時鐘。這給預期輸出:

string output = estTime.ToString("yyyy-MM-dd HH:mm:ss"); 

Custom Date and Time Format Strings

2

試試這個:

estTime.ToString("yyyy-MM-dd HH:mm:ss"); 

C#是區分大小寫的格式字符串是區分大小寫的太

還要檢查這個有用MSDN link

1

你得到的情況下錯誤:

estTime.ToString("yyyy-MM-dd HH':'mm':'ss"); 
1

對於全參考檢查this MSDN文章。試試:

estTime.ToString("yyyy-MM-dd HH':'mm':'ss");