我試圖從DateTime
在MM/dd/yyyy
轉換成另一種DateTime
在yyyy-dd-MM
轉換日期時間
我能夠用得到的形式yyyy-dd-MM
一個string
Date.Parse().ToString("yyyy-MM-dd")
但是當我使用Convert.ToDateTime()
或Date.Parse()
到string
轉換回DateTime
,它只是轉換的string
回到DateTime
形式MM/dd/yyyy HH:mm:ss
我試圖從DateTime
在MM/dd/yyyy
轉換成另一種DateTime
在yyyy-dd-MM
轉換日期時間
我能夠用得到的形式yyyy-dd-MM
一個string
Date.Parse().ToString("yyyy-MM-dd")
但是當我使用Convert.ToDateTime()
或Date.Parse()
到string
轉換回DateTime
,它只是轉換的string
回到DateTime
形式MM/dd/yyyy HH:mm:ss
說我想日期時間轉換成某種格式的日期時間爲其它格式在技術上是錯誤的,因爲格式是關於DateTime
字符串表示。
爲什麼我不能使用DateTime.Parse()
將yyyy-dd-MM
格式的字符串轉換爲DateTime
?
的DateTime.Parse
通過使用當前區域性的約定解析日期和時間字符串。
要跨機器和可能的文化邊界以自定義/固定格式解析日期和時間字符串,可以使用DateTime.ParseExact
。
所以將字符串轉換在yyyy-dd-MM
到DateTime
你可以使用:
var d = DateTime.ParseExact("2016-31-12", "yyyy-dd-MM", CultureInfo.InvariantCulture);
而且在MSDN中提到,因爲日期和時間的字符串表示必須符合公認的模式,你在調用解析方法解析用戶輸入時應始終使用異常處理,或考慮使用TryParse
或TryParseExact
。
更多信息:
還有就是DateTime
表示形式之間沒有差異。實際上,DateTime
是一些刻度,可以用任何你想要的形式表示。
根據你的答案 - 如果你需要字符串化DateTime
有一定的格式 - 你應該指定您希望無論它需要的格式。
我認爲日期時間總是顯示日期在您的系統的格式。也就是說,如果您將系統格式設置爲yyyy-dd-MM,則會以該格式顯示日期。
如果你有顯示在UI上日期,因爲你做了更好的使用格式化字符串。
但是,如果你想進行任何操作(天氣comparession或任何其他),使用日期時間。所有的DateTime將始終採用系統格式。
它不僅僅是系統格式。系統格式可以*影響默認文化,但人們可以很容易地使用不同的文化。 –
日期時間取決於當前的系統格式。 – Sreenath
DateTime實際上是雙倍的,它不以任何格式「存儲」。如果你想以特定的格式查看它,這就是ToString的用途。 –
目前尚不清楚你的意思。當你將字符串解析回'DateTime'時,你得到的只是一個'DateTime'。這不是「MM/dd/yyyy」,「yyyy-dd-MM」或任何其他格式。 –