![](/img/trans.png)
[英]Why is string.Format(“{0:d}”, DateTime.Now) returning “yyyy-MM-dd” instead of US-local “M/d/yyyy” after changing local display settings?
[英]Format DateTime.Now to yyyy-mm-dd
我想將DateTime.Now轉換為yyyy-mm-dd
的格式,因為這是我想包括在查詢中的唯一格式。
DateTime.Now
的默認format
類似於5/1/2008 6:32:06 PM
。
如果我想將其格式更改為yyyyMMdd
,可以使用以下代碼行:
var dateString1 = DateTime.Now.ToString("yyyyMMdd");
但是,當我為yyyy-mm-dd
格式嘗試如下所示時:
var dateString2 = DateTime.Now.ToString("yyyy-mm-dd");
我得到的結果是錯誤的。 對於以下代碼行:
var dateString1 = DateTime.Now.ToString("yyyyMMdd");
var dateString2 = DateTime.Now.ToString("yyyy-mm-dd");
Console.WriteLine("yyyyMMdd " + dateString1);
Console.WriteLine("yyyy-mm-dd "+ dateString2);
我得到以下結果:
第二種情況是錯誤的。
我想念什么?
根據msdn, MM
格式說明符代表月份, mm
代表分鍾。
“ mm” | 從00到59的分鍾。
“ MM” | 從01到12的月份。
因此,您的代碼應如下所示:
var dateString1 = DateTime.Now.ToString("yyyyMMdd");
var dateString2 = DateTime.Now.ToString("yyyy-MM-dd");
Console.WriteLine("yyyyMMdd " + dateString1);
Console.WriteLine("yyyy-MM-dd "+ dateString2);
這樣您將獲得理想的結果
var dateString1 = DateTime.Now.ToString("yyyyMMdd");
var dateString2 = DateTime.Now.ToString("yyyy-MM-dd");
Console.WriteLine("yyyyMMdd " + dateString1);
Console.WriteLine("yyyy-MM-dd "+ dateString2);
您在第二種格式中使用的是“ mm”而不是“ MM”。 mm是分鍾,MM是月。
您的未命中形式為小寫的“ m”(以第二種格式表示),它確定了MINUTES,但是對於MONTHS,您需要“ M”而不是“ m”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.