欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.NET?6新特性試用之DateOnly和TimeOnly類型

 更新時間:2022年03月15日 10:53:11   作者:My?IO  
這篇文章主要介紹了.NET?6新特性試用之DateOnly和TimeOnly類型,主要介紹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小時,應該還是當前時間,實際帶了天數(shù)

因此,.Net 6引入了DateOnly和TimeOnly結構,可以存儲日期和時間

舉例

?1.創(chuàng)建實例?

我們可以直接創(chuàng)建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);

?2.類型轉換?

反之,可以使用??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

?3.操作?

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類型的文章就介紹到這了,更多相關DateOnly和TimeOnly類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論