String.Format yyyy/MM/dd? 誤會大了(转)

原文:http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/04/01/date-formate-slash.aspx

String.Format yyyy/MM/dd? 誤會大了

今天才發現一件誤很大的事...

Console.WriteLine(string.Format("{0:yyyy/MM/dd}", DateTime.Today));

結果應該是什麼? 不就是2009/04/01嗎?

答案是不一定,也有可能是2009-04-01哦!

根據本草綱目MSDN Library記載,日期格式裡的"/"代表的並不是斜線符號,而是DateTimeFormatInfo.DataSeparator。

Represents the date separator defined in the current DateTimeFormatInfo.DateSeparator property. This separator is used to differentiate years, months, and days.

表示目前 DateTimeFormatInfo.DateSeparator 屬性中所定義的日期分隔符號。此分隔符號可用來分隔年、月和日。

換句話說,如果日期格式被設定為yyyy-MM-dd,則DateTimeFormatInfo.DataSeparator = "-",此時string.Format("{0:yyyy/MM/dd}", DateTime.Today)就會變成2009-04-01,而不是想像中的2009/04/01。

要如何解決? 請愛用Escape字符"\",寫成以下的格式就OK了。

Console.WriteLine(string.Format("{0:yyyy\\/MM\\/dd}", DateTime.Today));

歡迎推文分享:
 
 
Published 01 April 2009 09:41 PM 由 Jeffrey
Filed under: Tips.NETCODE

 

posted @ 2014-04-08 14:21  子夜一梦  阅读(448)  评论(0)    收藏  举报