2010-03-26 110 views
6

我的DateTimePicker我的形式,我的值自定義格式屬性設置爲「DD/MM/YYYY」螞蟻當我運行這段代碼:如何設置的DateTimePicker值僅日期(.NET)

MessageBox.Show(dateTimePicker1.Value.ToString());

我得到這個值:「3/26/2010 1:26 PM」。

如何我可以刪除部分時間的價值。

我知道我們可以用這個方法

dateTimePicker1.Value.ToShortDateString(); 

,但我想給value屬性設置爲這種格式「DD/MM/YYYY」所以輸出會是這樣「26/3/2010",因爲我想的值存儲在我的數據庫(SQL)

我可怎麼辦呢?

+0

如果你想你的'System.DateTime'的日期部分存儲在你的數據庫,你爲什麼帶一個格式化字符串到數據庫? ...而是使用'dateTimePicker1.Value。Date'然後存儲在這你的專欄(這可能是日期時間或日期 - 無論你的數據庫允許) – 2012-01-05 09:39:43

回答

12

使用dateTimePicker1.Value.Date得到這個DateTime值的日期部分。

但是,如果要解析爲字符串,請注意使用dateTimePicker1.Value.Date.ToString將產生「26/03/2010 00:00:00」字符串,而使用諸如MyString = CStr(dateTimePicker1.Value.Date)之類的字符串將導致MyString爲「26/2010" 年3月。

1

只是MessageBox.Show(dateTimePicker1.Value.ToString("dd/MM/yyyy"));

+0

我想這樣做: datetimepicker.value = 26/03/2010 有沒有什麼辦法可以做到這一點? – salhzmzm 2010-03-26 12:01:34

+0

datetimepicker.Value =新日期時間(2010,3,26);或 datetimepicker.Value = Convert.ToDateTime( 「26/03/2010」); – PierrOz 2010-03-26 12:15:11

+3

使用下面的ParseExact。使用程序中的任何字符串變量替換第一個參數中的日期字符串。 日期時間dtResult = DateTime.ParseExact( 「26/03/2010」, 「d/M/YYYY」,CultureInfo.InvariantCulture); 在這裏看到更多的信息http://msdn.microsoft.com/en-us/library/system.datetime.parseexact.aspx – 2010-03-26 13:04:33

4

我假設你的當前日期和時間初始化的DateTimePicker:

dateTimePicker1.Value = DateTime.Now; 

相反,與當前日期初始化:

dateTimePicker1.Value = DateTime.Today; 

會發生什麼事是如下:

  • 如果用戶選擇一個日期,然後DateTimePicker.Value屬性將始終返回一個日期,沒有一天組件的時間,並DateTime.Kind設置爲Unspecified

  • 如果用戶沒有選擇日期,那麼DateTimePicker.Value屬性將返回用於初始化DateTimePicker.Value屬性的值。如果使用DateTime.Now對它進行初始化,則它將具有一天的時間組件,並且DateTime.Kind將設置爲Local

0

如果在數據庫中的字符串作爲數據類型:

dateTimePicker1.Value.Date.ToString("d"); 

如果數據類型爲datetime:

dateTimePicker1.Value.Date; 

雙方將返回DD/MM /沒有時間yyyy格式的日期。

+0

也許你可以解釋這是如何回答OP的問題?另外 - 如果用戶在他們的機器上有不同的文化會發生什麼? – 2016-05-02 16:50:18

+3

儘管此代碼可以回答這個問題,提供有關爲什麼和/或如何回答這個問題將顯著改善其長期價值附加的上下文。請[編輯]你的答案,添加一些解釋。 – CodeMouse92 2016-05-02 21:39:14

+0

@ JasonMc92謝謝,我是新的stackoverflow。我添加了一些解釋。 – Trushant04 2016-05-04 11:40:14

相關問題