前言 在軟件開發(fā)中,有許多需求需要在應(yīng)用程序中處理日期和時間。在.NET 中DateTime 類是處理日期和時間的基礎(chǔ),它表示一個日期和時間 。本文我們將通過示例了解DateTime 的使用。
DateTime DateTime 類包含了日期、時間、區(qū)域性、本地化、毫秒等,其值的范圍介于0001年01月01日00:00:00時~9999年12月31日23:59:59時之間。
1、DateTime 屬性
DateTime 中包含了獲取日期和時間的屬性,其中有 Year(年)、Month(月)、Day(日)、Hour(時)、Minute(分)、Second(秒)、Millisecond(毫秒) 等。下表是其它一些屬性:
屬性 描述 DayOfWeek 返回一周中日期的名稱 DayOfYear 返回一年中的日期 TimeOfDay 返回時間信息(時、分、秒、毫秒) Today 返回 DateTime 中的日 Now 返回具有當(dāng)前日期和時間值的 DateTime 對象 UtcNow 返回采用協(xié)調(diào)世界時 UTC 的 DateTime 對象 Ticks 返回 DateTime 中的刻度數(shù) Kind 返回 Unspecified、Utc、Local
下面通過示例,了解 DateTime 一些屬性。
namespace Fountain . WinConsole . DateTimeDemo
{
internal class Program
{
static void Main (string[] args)
{
/ / 使用默認(rèn)構(gòu)造函數(shù)創(chuàng)建對象 日期時間初事值為 0001-1-1 0:00:00
DateTime defaultDateTime = new DateTime();
Console.WriteLine(defaultDateTime.ToString());
/ / 使用指定的日期和時間創(chuàng)建對象
DateTime dateTime = new DateTime(2024, 12, 20, 19, 10, 09);
Console.WriteLine(dateTime.ToString());
/ / 使用 DateTime.Parse 或 DateTime.ParseExact 方法從字符串解析日期和時間
DateTime dateFromString = DateTime.Parse("2024-12-20 13:30:00", System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine(dateFromString.ToString());
/ / 使用指定的日期創(chuàng)建對象
DateTime designDate = new DateTime(2024, 10, 18);
Console.WriteLine(designDate.ToString());
/ / 通過時間戳創(chuàng)建對象
DateTime ticksTime = new DateTime(1734705922);
Console.WriteLine(ticksTime.ToString());
/ / 具有本地化的 DateTime
DateTime dateTimeKind = new DateTime(2024, 12, 10, 7, 10, 24, DateTimeKind.Local);
Console.WriteLine(dateTimeKind.ToString());
/ / 包含日期、時間和毫秒的 DateTime
DateTime dateTimeMilliseconds = new DateTime(2024, 12, 15, 5, 30, 45, 100);
Console.WriteLine(dateTimeMilliseconds.ToString());
/ / 使用DateTime的Today獲取當(dāng)前日期的日期部分
DateTime today = DateTime.Today;
Console.WriteLine(today.ToString());
/ / 使用DateTime的 Now 獲取當(dāng)前的日期和時間
DateTime nowDateTime = DateTime.Now;
Console.WriteLine(nowDateTime.ToString());
/ / 使用DateTime的 UtcNow 獲取當(dāng)前的UTC日期和時間
DateTime utcNow = DateTime.UtcNow;
Console.WriteLine(utcNow.ToString());
/ / 使用DateTime的 MinValue或 MaxValue 獲取可能的最小或最大日期和時間值
DateTime minDateTime = DateTime.MinValue;
Console.WriteLine(minDateTime.ToString());
DateTime maxDateTime = DateTime.MaxValue;
Console.WriteLine(maxDateTime.ToString());
Console.Read();
}
}
}
2、創(chuàng)建 DateTime
下面通過示例,了解如何創(chuàng)建 DateTime 對象。
namespace Fountain . WinConsole . DateTimeDemo
{
internal class Program
{
static void Main ( string [] args)
{
DateTime preDateTime = new DateTime ( 2024 , 12 , 21 , 10 , 11 , 24 , DateTimeKind . Utc );
Console . WriteLine ( "Day:{0}" , preDateTime. Day );
Console . WriteLine ( "Month:{0}" , preDateTime. Month );
Console . WriteLine ( "Year:{0}" , preDateTime. Year );
Console . WriteLine ( "Hour:{0}" , preDateTime. Hour );
Console . WriteLine ( "Minute:{0}" , preDateTime. Minute );
Console . WriteLine ( "Second:{0}" , preDateTime. Second );
Console . WriteLine ( "Millisecond:{0}" , preDateTime. Millisecond );
Console . WriteLine ( "Day of Week:{0}" , preDateTime. DayOfWeek );
Console . WriteLine ( "Day of Year: {0}" , preDateTime. DayOfYear );
Console . WriteLine ( "Time of Day:{0}" , preDateTime. TimeOfDay );
Console . WriteLine ( "Tick:{0}" , preDateTime. Ticks );
Console . WriteLine ( "Kind:{0}" , preDateTime. Kind );
Console . Read ();
}
}
}
3、計算加減
DateTime 提供了加減年、天、小時、分鐘、秒、毫秒和刻度 的方法,下面通過示例了解其使用。 DateTime dateTime = DateTime . Now ;
/ / 加減年份
dateTime=dateTime.AddYears(1);
dateTime=dateTime.AddYears(-1);
/ / 加減月份
dateTime=dateTime.AddMonths(1);
dateTime=dateTime.AddMonths(-1);
/ / 加減天數(shù)
dateTime=dateTime.AddDays(12);
dateTime=dateTime.AddDays(-12);
/ / 加減小時
dateTime=dateTime.AddHours (2);
dateTime=dateTime.AddHours(-2);
/ / 加減分鐘
dateTime=dateTime.AddMinutes(10);
dateTime=dateTime.AddMinutes(-10);
/ / 加減秒數(shù)
dateTime=dateTime.AddSeconds(30);
dateTime=dateTime.AddSeconds(-30);
/ / 加減毫秒數(shù)
dateTime=dateTime.AddMilliseconds(200);
dateTime=dateTime.AddMilliseconds(-200);
/ / 加減刻度
dateTime=dateTime.AddTicks(5000);
dateTime=dateTime.AddTicks(-5000);
4、日期時間比較
DateTime 提供了 Compare與CompareTo 方法實現(xiàn)兩個日期時間的比較,如果是比較是否相等還可以使用 Equals 方法。下面代碼段了解其使用。
// 定義日期
DateTime firstDate = new DateTime( 2024 , 12 , 21 );
DateTime secondDate = new DateTime( 2024 , 12 , 20 );
// 比較兩個日期時間的大小
int compareResult = DateTime.Compare(firstDate, secondDate);
// 比較兩個日期時間的大小
int compareToResult = firstDate.CompareTo(secondDate);
// 比較兩個日期時間是否相等
bool equalsResult = firstDate.Equals(secondDate);
if (compareResult < 0 )
Console.WriteLine($"日期時間:{firstDate}比{secondDate}早");
else if (compareResult == 0 )
Console.WriteLine($"日期時間:{firstDate}與{secondDate}相等");
else
Console.WriteLine($"日期時間:{firstDate}比{secondDate}晚");
5、日期時間格式化
DateTime 的格式化是將其轉(zhuǎn)化為多種格式的字符串,而 GetDateTimeFormats 方法可返回計算機(jī)當(dāng)前區(qū)域性的所有可能的 DateTime 格式。除了 GetDateTimeFormats ,還可以使用ToString 方法來格式化。下面代碼段了解其使用。
DateTime dateTime = DateTime.Now;
// 日期時間格式: d, D, f, F, g, G, m, o, r, s, t, T, u, U,
Console.WriteLine( "d 格式" );
string[] dateFormats = dateTime.GetDateTimeFormats( 'd' );
foreach (string format in dateFormats)
{
Console.WriteLine( format );
}
Console.WriteLine( "D 格式" );
dateFormats = dateTime.GetDateTimeFormats( 'D' );
foreach (string format in dateFormats)
{
Console.WriteLine( format );
}
Console.WriteLine( "f 格式" );
dateFormats = dateTime.GetDateTimeFormats( 'f' );
foreach (string format in dateFormats)
{
Console.WriteLine( format );
}
Console.WriteLine( "F 格式" );
dateFormats = dateTime.GetDateTimeFormats( 'F' );
foreach (string format in dateFormats)
{
Console.WriteLine( format );
}
// 2024 年 12 月 21 日 12 : 41 : 33
Console. WriteLine (dateTime. ToString ( "F" ));
// 2024 年 12 月 21 日 12 : 42
Console. WriteLine (dateTime. ToString ( "f" ));
// 2024 年 12 月 21 日
Console .WriteLine (dateTime .ToString ("D"));
// 2024 - 12 - 21 12 : 44 : 05
Console. WriteLine (dateTime. ToString ( "yyyy-MM-dd HH:mm:ss" ));
6、字符串轉(zhuǎn)日期
Parse 或 ParseExact 方法用于將字符串轉(zhuǎn)換為 DateTime 對象。在使用該方法時,字符串必須具有正確的 DateTime 格式,否則無法完成轉(zhuǎn)換。
DateTime dateTime1 = DateTime.Parse( "2024-12-20 12:53:22" );
DateTime dateTime2 = DateTime.ParseExact( "2024/12/20" , "yyyy-MM-dd" , null );
小結(jié) DateTime 用于表示和處理.NET 中的日期和時間,本文通過示例了解如何創(chuàng)建DateTime、屬性、加減日期和時間、日期比較和格式化等。 希望本文對您有所收獲,如有不到之處,請多多包涵。
該文章在 2024/12/25 12:04:27 編輯過