C#基础:DateTime

作者:微信公众号:【架构师老卢】
8-3 18:42
42

概述:在 C# 中,DateTime 结构是用于处理日期和时间的基本数据类型。它是 System 命名空间的一部分,并提供了用于处理日期和时间信息的各种方法和属性C# 语言中的 DateTimeC# 中日期时间的功能:创建 DateTime 对象:您可以创建一个 DateTime 对象来表示特定的日期和时间。有几种构造函数可用,但最常见的构造函数采用年、月、日、小时、分钟和秒作为参数:例using System; DateTime dateTime = new DateTime(2023, 10, 31, 14, 30, 0);当前日期和时间:若要获取当前日期和时间,可以使用 DateTime.N

在 C# 中,DateTime 结构是用于处理日期和时间的基本数据类型。它是 System 命名空间的一部分,并提供了用于处理日期和时间信息的各种方法和属性

C# 语言中的 DateTime

C# 中日期时间的功能:

创建 DateTime 对象:

您可以创建一个 DateTime 对象来表示特定的日期和时间。有几种构造函数可用,但最常见的构造函数采用年、月、日、小时、分钟和秒作为参数:

using System;  
DateTime dateTime = new DateTime(2023, 10, 31, 14, 30, 0);

当前日期和时间:

若要获取当前日期和时间,可以使用 DateTime.Now 属性:

DateTime currentDateTime = DateTime.Now;

日期和时间格式:

可以使用 ToString 方法或指定格式字符串将 DateTime 对象的格式设置为字符串:

string formattedDateTime = currentDateTime.ToString("yyyy-MM-dd HH:mm:ss");

日期和时间属性:

DateTime 提供了各种属性来访问日期和时间的不同组件:

int year = currentDateTime.Year;  
int month = currentDateTime.Month;  
int day = currentDateTime.Day;  
int hour = currentDateTime.Hour;  
int minute = currentDateTime.Minute;  
int second = currentDateTime.Second;

日期算术:

您可以对 DateTime 对象执行算术运算,例如添加或减去时间间隔:

DateTime futureDateTime = currentDateTime.AddHours(3);  
DateTime pastDateTime = currentDateTime.AddMonths(-2);

比较 DateTime 对象:

可以使用比较运算符(<、<=、>、>=)或 Equals 方法比较 DateTime 对象。

DateTime currentDateTime = DateTime.Now;  
DateTime futureDateTime = currentDateTime.AddHours(3);  
bool isBefore = currentDateTime < futureDateTime;

时区:

若要处理时区,可以使用 DateTimeOffset 结构。它包括偏移信息,使其适合于处理特定时区的日期和时间。

DateTime 表示日期和时间。

偏移量表示本地时间与 UTC 之间的时差。

var dateTimeOffset = new DateTimeOffset(new DateTime(2023, 5, 15, 7, 0, 0),new TimeSpan(-7, 0, 0));  
{  
  Console.WriteLine(dateTimeOffset);  
}

解析日期和时间字符串:

可以使用 DateTime.Parse 或 DateTime.TryParse 方法分析日期和时间字符串。

string dateStr = "2023-10-31";  
DateTime parsedDate = DateTime.Parse(dateStr);

DateTime.ParseExact:

在 C# 中,DateTime.ParseExact 方法用于根据指定的格式将表示日期和时间的字符串分析到 DateTime 对象中。如果您有特定格式的日期和时间字符串,并且希望确保根据该格式正确分析它,则此方法特别有用。

// Date and time string in a specific format  
string dateString = "2023-10-31 14:30:00";  
// Date format string corresponding to the input format  
string format = "yyyy-MM-dd HH:mm:ss";  
try  
{  
  // Parse the date string using the specified format  
  DateTime parsedDateTime = DateTime.ParseExact(dateString, format, System.Globalization.CultureInfo.InvariantCulture);  
  // Display the parsed date and time  
  Console.WriteLine("Parsed DateTime: " + parsedDateTime);  
}  
catch (FormatException)  
{  
  Console.WriteLine("Invalid date format");  
}

日期和时间计算:

DateTime 结构允许您执行日期和时间的各种计算和操作,例如计算两个日期之间的差异、查找星期几或确定闰年。

DateTime startTime = DateTime.Now;  
DateTime endTime = DateTime.Now.AddSeconds(75);  
TimeSpan span = endTime.Subtract(startTime);  
Console.WriteLine( "Time Difference (seconds): " + span.Seconds );  
Console.WriteLine( "Time Difference (minutes): " + span.Minutes );  
Console.WriteLine( "Time Difference (hours): " + span.Hours );  
Console.WriteLine( "Time Difference (days): " + span.Days );

C# 中的 DateTime 示例

using System;  
public class Program  
{  
  public static void Main(string[] args)  
  {  
    DateTime dateTime = new DateTime(2023, 10, 31, 14, 30, 0);  
    Console.WriteLine("Datetime is :{0}", dateTime);  
    DateTime currentDateTime = DateTime.Now;  
    Console.WriteLine("Current DateTime is :{0}", currentDateTime);  
    string formattedDateTime = currentDateTime.ToString("yyyy-MM-dd HH:mm:ss");  
    Console.WriteLine("Formatted datetime is :{0}", formattedDateTime);  
    int year = currentDateTime.Year;  
    int month = currentDateTime.Month;  
    int day = currentDateTime.Day;  
    int hour = currentDateTime.Hour;  
    int minute = currentDateTime.Minute;  
    int second = currentDateTime.Second;  
    Console.WriteLine("Year is :{0}", year);  
    Console.WriteLine("Month is :{0}", month);  
    Console.WriteLine("Day is :{0}", day);  
    Console.WriteLine("Hour is :{0}", hour);  
    Console.WriteLine("Minute is :{0}", minute);  
    Console.WriteLine("Second is :{0}", second);  
    DateTime futureDateTime = currentDateTime.AddHours(3);  
    DateTime pastDateTime = currentDateTime.AddMonths(-2);  
    Console.WriteLine("Future datetime is :{0}", futureDateTime);  
    Console.WriteLine("Past datetime is :{0}", pastDateTime);  
    bool isBefore = currentDateTime < futureDateTime;  
    Console.WriteLine("Future datetime is greater then past datetime :{0}", isBefore);  
    var dateTimeOffset = new DateTimeOffset(new DateTime(2023, 5, 15, 7, 0, 0),new TimeSpan(\-7, 0, 0));  
    Console.WriteLine("DateTime Offset is :{0}", dateTimeOffset);  
    string dateStr = "2023-10-31";  
    DateTime parsedDate = DateTime.Parse(dateStr);  
    Console.WriteLine("Parse datetime is :{0}", parsedDate);  
    DateTime startTime = DateTime.Now;  
    DateTime endTime = DateTime.Now.AddSeconds(75);  
    TimeSpan span = endTime.Subtract(startTime);  
    Console.WriteLine( "Time Difference (seconds): " + span.Seconds );  
    Console.WriteLine( "Time Difference (minutes): " + span.Minutes );  
    Console.WriteLine( "Time Difference (hours): " + span.Hours );  
    Console.WriteLine( "Time Difference (days): " + span.Days );  
  }  
}

输出

Datetime is :31/10/2023 2:30:00 pm  
Current DateTime is :09/11/2023 11:21:24 pm  
Formatted datetime is :2023-11-09 23:21:24  
Year is :2023  
Month is :11  
Day is :9  
Hour is :23  
Minute is :21  
Second is :24  
Future datetime is :10/11/2023 2:21:24 am  
Past datetime is :09/09/2023 11:21:24 pm  
Future datetime is greater then past datetime :True  
DateTime Offset is :15/05/2023 7:00:00 am -07:00  
Parse datetime is :31/10/2023 12:00:00 am  
Time Difference (seconds): 15  
Time Difference (minutes): 1  
Time Difference (hours): 0  
Time Difference (days): 0

DateTime 结构是 C# 的一个基本且强大的组件,用于处理日期和时间信息,它对于各种应用程序(包括计划、日志记录和处理历史数据)都是必不可少的。

阅读排行