您好,登錄后才能下訂單哦!
這篇文章主要介紹了.NET 6的DateOnly和TimeOnly類型怎么用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇.NET 6的DateOnly和TimeOnly類型怎么用文章都會有所收獲,下面我們一起來看看吧。
在.NET 6之前,沒有方法來直接表示沒有時間的日期(比如生日)或者沒有日期的一天中的時間(比如鬧鐘)。
雖然我們可以使用DateTime類和TimeSpan類來代替,但是實際使用中會存在一些問題:
var dateOnly = new DateTime(2021, 10, 1); //輸出 2021/10/1 0:00:00 //問題:還是有時間,并不能代表0點出生 var timeOnly = new TimeSpan(11, 22, 0).Add(TimeSpan.FromHours(24)); //輸出 1.11:22:00 //問題:過了24小時,應該還是當前時間,實際帶了天數
因此,.Net 6引入了DateOnly和TimeOnly結構,可以存儲日期和時間
我們可以直接創建DateOnly或者TimeOnly的實例:
var dateOnly = new DateOnly(2021, 10, 1); //輸出 10/1/2021 var timeOnly = new TimeOnly(11, 22, 0); //輸出 11:22 AM
還可以使用FromDateTime方法從DateTime實例中生成:
var datetime = new DateTime(2021, 10, 1, 10, 1, 0); var dateOnly = DateOnly.FromDateTime(datetime); var timeOnly = TimeOnly.FromDateTime(datetime);
還可以使用FromTimeSpan方法從TimeSpan實例中生成TimeOnly:
var timeSpan = new TimeSpan(11, 22, 0); var timeOnly = TimeOnly.FromTimeSpan(timeSpan);
反之,可以使用ToDateTime方法將DateOnly實例轉換成DateTime:
var dateOnly = new DateOnly(2021, 10, 1); var timeOnly = new TimeOnly(11, 22, 0); var datetime = dateOnly.ToDateTime(timeOnly); //輸出 10/1/2021 11:22:00 AM
可以看到,必須同時帶上TimeOnly
實例才能轉換。
也可以使用ToTimeSpan方法將TimeOnly實例轉換成TimeSpan:
var timeOnly = new TimeOnly(11, 22, 0); var timeSpan = timeOnly.ToTimeSpan(); //輸出 11:22:00
DateOnly和TimeOnly類型還提供了比較運算符(例如<和>)和AddXXX方法進行操作:
var noon = new TimeOnly(12, 0); if (now < noon) { //早上 ... } dateOnly = dateOnly.AddDays(7); timeOnly = timeOnly.AddHours(24);
需要注意的是:僅僅TimeOnly類型支持-運算符,獲得TimeSpan時間間隔。
DateOnly和TimeOnly的引入并不意味著DateTime將不再有用,只是將它們用在不同場景。
關于“.NET 6的DateOnly和TimeOnly類型怎么用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“.NET 6的DateOnly和TimeOnly類型怎么用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。