[英]Datetime to string: differents behavior depending on the converted datetime
我使用以下C#代碼將日期時間轉換為字符串:
MyDatetime.ToString("dd/MM/yyyy HH:mm")
它有效,但並非每次都有效。 我什么意思
例如,如果輸入的datetime是2016-10-19 17:27:41.727
, 2016-10-19 17:27:41.727
得到預期的字符串2016-10-19 17:27:41.727
19/10/2016 17:27
。 如果日期時間中的日期(和/或月份)只有一位,那我會覺得很奇怪。
如果輸入的是2016-01-07 14:58:13.560
,我收到1/7/2016
,如果是2016-10-26 17:14:16.000
我得到10/6/2016
。
你知道為什么嗎? 如何在幾天和幾個月內始終只用一個數字設置前導零? 而且,為什么我在撰寫示例的日期中沒有看到時間部分?
UPDATE
SQL Server數據庫(這是SQL Server Management Studio)中的某些datetime字段。
當您輸入日期“ XXXX-XX-XX”時,則假定您使用的格式為“ YYYY-MM-DD”。
只需查看您的輸入輸出即可看到模式。 (與我一起工作的)很多編程人員都使用這種格式,因為它是自動過濾的,沒有任何標點符號(20170102總是在20161231之后,依此類推)。
您的DateTime很可能已經具有無效值(日期和月份混合)
new DateTime(2016, 01, 07,14,58,13,56).ToString("dd/MM/yyyy HH:mm")
返回07-01-2016 14:58
。
看看如何從數據庫中讀取此DateTime值。 我相信問題就在那里。 (例如SqlDataReader.GetDateTime )
DateTime方法與計算機語言結合使用。 如果您的計算機(或服務器)是英語(反之亦然),並且您傳遞的是美國非標准日期格式,則將遇到類似這樣的問題。 如果使用的是Web應用程序,請在web.config中配置正確的語言
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.