2014-12-19 47 views
5

我需要刪除日期時間的時間部分,或者可能在對象窗體中使用以下格式的日期而不是字符串形式。如何在僅用於DateTime對象的C#中刪除日期的時間部分

2014年6月26日00:00:00:000

因爲我需要在對象形式的日期我不能使用任何字符串轉換方法。

我首先嚐試將日期轉換爲字符串,從中刪除時間特定的日期,但它會在我將其再次轉換爲DateTime對象後立即添加12:00:00 AM。

+0

對不起,讀錯了。你說'06/26/2014 00:00:00:000'也可以嗎?太好了,因爲上午12:00:00就是這樣。正如所有答案所顯示的那樣,不需要字符串操作。 – Corak 2014-12-19 07:50:34

回答

4

您可以使用DateTime對象的Date屬性獲取僅一天。

DateTime dateOnly = date1.Date; 

如果你想從DateTime對象中得到Date的字符串,那麼通過提供它的格式來使用ToString方法。您可以在此MSDN article中閱讀有關自定義日期格式的更多信息。

string strDate = date.ToString("MM/dd/yyyy"); 
+0

{07/09/15 12:00:00 AM} – 2015-10-04 23:31:58

2

我需要刪除的日期時間時部分...

這是不可能的。你不能有沒有時間信息的DateTime實例。例如,您不能只有06/26/2014或只有00:00:00:000DateTime實例。

如果你只想得到日期的一部分,你可以使用DateTime.Date property

獲取日期此實例的組件。

但是,這個.Date屬性分配它的時間部分到午夜。

請記住,DateTime沒有任何隱式格式。它只有日期和時間值。 格式的概念僅適用於當您要將其顯示爲string時。

在表示部分,你必須使用字符串表示法;

yourDateTime.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture); 
+0

它(yourDateTime.ToString(「MM/dd/yyyy」,CultureInfo.InvariantCulture);)刪除時間部分? – 2015-10-04 23:25:56

+0

@ r.hamd當您使用'ToString'方法時,您將生成'DateTime'的_textual_(又名字符串)表示。這意味着,它不再是'DateTime'了。這是一個「字符串」。當然你可以通過生成_only_日期部分來生成它的字符串表示,但是你不能有'DateTime'實例_without_時間部分。理解它們之間的區別是非常重要的。 – 2017-07-26 06:30:17

7

您不能在沒有時間的情況下創建DateTime對象。它總是有一些時間。

如果你想輸出它沒有時間部分,你可以使用一個format string這樣做:

date.ToString("MM/dd/yyyy"); 

Standard Date and Time Format Strings
Custom Date and Time Format Strings

正如其他人所說,你可以訪問date.Date得到一個具有任何特定時間信息的值被省略,但仍然具有00:00 AM的時間。

+0

OP想要一個'DateTime':_「不是以字符串的形式」_。我猜[Adil的回答](http://stackoverflow.com/a/27561540/284240)是他正在尋找的。 – 2014-12-19 07:53:23

+0

@TimSchmelter那麼,OP運氣不好,除非他們想使用.NET核心以外的東西。但這聽起來像是一個X-> Y的問題。問題是爲什麼他們想要這個。 – JLRishe 2014-12-19 07:54:29

+0

我猜測OP是困惑的,因爲DateTime在末尾似乎有'12:00:00 AM',但這就是它在任何地方看它的方式。因爲他不想要一個字符串,所以他用'DateTime.Date'達到了目標。 – 2014-12-19 07:56:25

2
var dateAndTime = DateTime.Now; 
var date = dateAndTime.Date; 

date變量將包含日期,時間部分將是00:00:00。

+0

{07/09/15 12 :00:00 AM} – 2015-10-04 23:31:51

相關問題