前言 在软件开发中,有许多需求需要在应用程序中处理日期和时间。在.NET 中DateTime 类是处理日期和时间的基础,它表示一个日期和时间 。本文我们将通过示例了解DateTime 的使用。 
DateTime DateTime 类包含了日期、时间、区域性、本地化、毫秒等,其值的范围介于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 返回具有当前日期和时间值的 DateTime 对象 UtcNow 返回采用协调世界时 UTC  的 DateTime 对象 Ticks 返回 DateTime 中的刻度数 Kind 返回 Unspecified、Utc、Local 
下面通过示例,了解 DateTime 一些属性。 
namespace  Fountain . WinConsole . DateTimeDemo {     internal  class   Program     {         static void  Main (string[] args)         {             / / 使用默认构造函数创建对象  日期时间初事值为 0001-1-1 0:00:00             DateTime defaultDateTime = new DateTime();             Console.WriteLine(defaultDateTime.ToString());             / / 使用指定的日期和时间创建对象             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());             / / 使用指定的日期创建对象             DateTime designDate = new DateTime(2024, 10, 18);             Console.WriteLine(designDate.ToString());             / / 通过时间戳创建对象             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获取当前日期的日期部分             DateTime today = DateTime.Today;             Console.WriteLine(today.ToString());             / / 使用DateTime的 Now 获取当前的日期和时间             DateTime nowDateTime = DateTime.Now;             Console.WriteLine(nowDateTime.ToString());             / / 使用DateTime的 UtcNow 获取当前的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、创建 DateTime 
下面通过示例,了解如何创建 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); / / 加减天数 dateTime=dateTime.AddDays(12); dateTime=dateTime.AddDays(-12); / / 加减小时 dateTime=dateTime.AddHours (2); dateTime=dateTime.AddHours(-2); / / 加减分钟 dateTime=dateTime.AddMinutes(10); dateTime=dateTime.AddMinutes(-10); / / 加减秒数 dateTime=dateTime.AddSeconds(30); dateTime=dateTime.AddSeconds(-30); / / 加减毫秒数 dateTime=dateTime.AddMilliseconds(200); dateTime=dateTime.AddMilliseconds(-200); / / 加减刻度 dateTime=dateTime.AddTicks(5000); dateTime=dateTime.AddTicks(-5000); 
4、日期时间比较 
DateTime 提供了 Compare与CompareTo 方法实现两个日期时间的比较,如果是比较是否相等还可以使用 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 的格式化是将其转化为多种格式的字符串,而 GetDateTimeFormats 方法可返回计算机当前区域性的所有可能的 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、字符串转日期 
Parse 或 ParseExact 方法用于将字符串转换为 DateTime 对象。在使用该方法时,字符串必须具有正确的 DateTime 格式,否则无法完成转换。 
DateTime   dateTime1   =  DateTime.Parse( "2024-12-20 12:53:22" ); DateTime   dateTime2   =  DateTime.ParseExact( "2024/12/20" ,  "yyyy-MM-dd" , null ); 
小结 DateTime  用于表示和处理.NET 中的日期和时间,本文通过示例了解如何创建DateTime、属性、加减日期和时间、日期比较和格式化等。 希望本文对您有所收获,如有不到之处,请多多包涵。