在 C# 中,DateTime 结构是用于处理日期和时间的基本数据类型。它是 System 命名空间的一部分,并提供了用于处理日期和时间信息的各种方法和属性
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);
可以使用比较运算符(<、<=、>、>=)或 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);
在 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 );
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# 的一个基本且强大的组件,用于处理日期和时间信息,它对于各种应用程序(包括计划、日志记录和处理历史数据)都是必不可少的。