簡體   English   中英

C#將字符串轉換為日期時間而無需時間

[英]C# convert string to datetime without time

看來我想要的東西是不可能的(至少根據我讀過的一些文章)。 但是只是仔細檢查一下。 我正在從數據庫中讀取DateTime 在數據庫中,它寫為“ 01.01.2011”,但是當我用SQL讀取並將其存儲在string它顯示為“ 01.01.2011 00:00:00”。 然后我想確定,我將減少string的時間。 但是有竅門,似乎這是不可能的。 即使我從string剪下“ 00:00:00”部分(它只是說“ 01.01.2011”),然后將其隱式轉換為DateTime ,仍然顯示“ 00:00:00”。 我是C#的新手,但是看來這部分在Java中可以更好地解決,您可以在其中定義所需的日期,並以這種方式顯示日期(不需要時沒有保留時間)。 因此,只是說清楚一點,是真的無法實現我想要的功能(並且我必須在表示層中照顧正確的格式)還是只是找不到合適的信息?

謝謝

.Net中的DateTime 始終是日期和時間。 如果願意,您可以忽略時間部分,但是它仍然存在。 在內部, DateTime跟蹤自1/1/0001起的總刻度數。 (毫秒內有10,000個滴答聲)。 因此, DateTime 不可能沒有時間分量。

對於僅日期的數據,通用約定是使用時間設置為午夜(00:00:00)的日期。 您可以使用其.Date屬性從任何DateTime獲取其中之一。

您需要注意,一旦您忽略時間,便始終會忽略時間。 否則,在諸如巴西這樣的時間從11:59:59 PM變為1:00:00 AM的地方處理夏時制時間問題時,您可能會遇到麻煩。 如果您對數據的處理方式不小心,則填充在DateTime中午夜的僅日期數據可能會被誤解為實際上不存在的本地時間。

.NET Framework中沒有日期的內置類型沒有時間。 但是,您可以在Noda Time庫的LocalDate結構中找到它。 如果您有很多基於日期的業務邏輯,則可以考慮使用它。

myDatTime.ToString("MMM dd, yyyy"); 會做到的

如果我了解您..可能會有所幫助。
在C#中:
if(!string.IsNullOrEmpty(yourDateTime)) { yourDateTime.ToString("dd/MM/yyyy"); }
在sql-server中:

select convert(varchar, yourDateTime ,102) as [yourDateTime]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM