目录
DateTime%C2%A0%E7%B1%BB%E7%9A%84%E5%B8%B8%E7%94%A8%E6%96%B9%E6%B3%95%E5%92%8C%E5%B1%9E%E6%80%A7%E7%9A%84%E6%B1%87%E6%80%BB%E8%A1%A8%E6%A0%BC-toc" name="tableOfContents" style="margin-left:40px">一、DateTime 类的常用方法和属性的汇总表格
二、常用方法程序示例
1. 获取当前本地时间
2. 获取当前 UTC 时间
3. 格式化日期和时间
4. 获取特定部分的时间
5. 获取时间戳
6. 获取时区信息
三、总结
DateTime%C2%A0%E7%B1%BB%E7%9A%84%E5%B8%B8%E7%94%A8%E6%96%B9%E6%B3%95%E5%92%8C%E5%B1%9E%E6%80%A7%E7%9A%84%E6%B1%87%E6%80%BB%E8%A1%A8%E6%A0%BC" name="%E4%B8%80%E3%80%81DateTime%C2%A0%E7%B1%BB%E7%9A%84%E5%B8%B8%E7%94%A8%E6%96%B9%E6%B3%95%E5%92%8C%E5%B1%9E%E6%80%A7%E7%9A%84%E6%B1%87%E6%80%BB%E8%A1%A8%E6%A0%BC">一、DateTime
类的常用方法和属性的汇总表格
在 C# 中,获取本地系统时间非常简单。可以使用 DateTime
类来获取当前日期和时间。DateTime
类提供了丰富的属性和方法,用于处理日期和时间。常用的方法包括获取当前时间、格式化时间、计算时间差、添加时间等。
下表将DateTime
类的常用方法和属性汇总为表格,包括说明和示例。
方法/属性 | 说明 | 示例 |
---|---|---|
DateTime.Now | 获取当前的本地日期和时间。 | DateTime now = DateTime.Now; |
DateTime.UtcNow | 获取当前的 UTC 日期和时间。 | DateTime utcNow = DateTime.UtcNow; |
DateTime.Today | 获取当前日期,时间部分为 00:00:00。 | DateTime today = DateTime.Today; |
DateTime.Year | 获取日期中的年份部分。 | int year = DateTime.Now.Year; |
DateTime.Month | 获取日期中的月份部分(1 到 12)。 | int month = DateTime.Now.Month; |
DateTime.Day | 获取日期中的天数部分(1 到 31)。 | int day = DateTime.Now.Day; |
DateTime.Hour | 获取时间中的小时部分(0 到 23)。 | int hour = DateTime.Now.Hour; |
DateTime.Minute | 获取时间中的分钟部分(0 到 59)。 | int minute = DateTime.Now.Minute; |
DateTime.Second | 获取时间中的秒数部分(0 到 59)。 | int second = DateTime.Now.Second; |
DateTime.Millisecond | 获取时间中的毫秒部分(0 到 999)。 | int millisecond = DateTime.Now.Millisecond; |
DateTime.DayOfWeek | 获取日期是星期几(返回 DayOfWeek 枚举值)。 | DayOfWeek dayOfWeek = DateTime.Now.DayOfWeek; |
DateTime.DayOfYear | 获取日期是一年中的第几天(1 到 366)。 | int dayOfYear = DateTime.Now.DayOfYear; |
DateTime.AddDays() | 在当前日期上添加指定的天数。 | DateTime newDate = DateTime.Now.AddDays(5); |
DateTime.AddHours() | 在当前时间上添加指定的小时数。 | DateTime newTime = DateTime.Now.AddHours(3); |
DateTime.AddMinutes() | 在当前时间上添加指定的分钟数。 | DateTime newTime = DateTime.Now.AddMinutes(30); |
DateTime.AddSeconds() | 在当前时间上添加指定的秒数。 | DateTime newTime = DateTime.Now.AddSeconds(45); |
DateTime.AddMonths() | 在当前日期上添加指定的月数。 | DateTime newDate = DateTime.Now.AddMonths(2); |
DateTime.AddYears() | 在当前日期上添加指定的年数。 | DateTime newDate = DateTime.Now.AddYears(1); |
DateTime.Subtract() | 计算两个日期之间的时间差,返回 TimeSpan 对象。 | TimeSpan diff = DateTime.Now.Subtract(previousDate); |
DateTime.ToString() | 将日期时间格式化为字符串。 | string formatted = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
DateTime.Parse() | 将字符串解析为 DateTime 对象。 | DateTime date = DateTime.Parse("2023-10-05"); |
DateTime.TryParse() | 尝试将字符串解析为 DateTime 对象,返回是否成功。 | bool success = DateTime.TryParse("2023-10-05", out DateTime date); |
DateTime.Compare() | 比较两个日期时间,返回一个整数(小于 0:前者早于后者;等于 0:相等;大于 0:前者晚于后者)。 | int result = DateTime.Compare(date1, date2); |
DateTime.Equals() | 判断两个日期时间是否相等。 | bool isEqual = date1.Equals(date2); |
DateTime.IsLeapYear() | 判断指定年份是否为闰年。 | bool isLeap = DateTime.IsLeapYear(2024); |
DateTime.DaysInMonth() | 返回指定年份和月份的天数。 | int days = DateTime.DaysInMonth(2023, 2); |
DateTime.ToShortDateString() | 将日期格式化为短日期字符串(如 "2023/10/05")。 | string shortDate = DateTime.Now.ToShortDateString(); |
DateTime.ToLongDateString() | 将日期格式化为长日期字符串(如 "2023年10月5日")。 | string longDate = DateTime.Now.ToLongDateString(); |
DateTime.ToShortTimeString() | 将时间格式化为短时间字符串(如 "14:30")。 | string shortTime = DateTime.Now.ToShortTimeString(); |
DateTime.ToLongTimeString() | 将时间格式化为长时间字符串(如 "14:30:45")。 | string longTime = DateTime.Now.ToLongTimeString(); |
DateTime.ToFileTime() | 将日期时间转换为文件时间(64 位整数,表示从 1601-01-01 开始的 100 纳秒间隔)。 | long fileTime = DateTime.Now.ToFileTime(); |
DateTime.ToUniversalTime() | 将本地时间转换为 UTC 时间。 | DateTime utcTime = DateTime.Now.ToUniversalTime(); |
DateTime.ToLocalTime() | 将 UTC 时间转换为本地时间。 | DateTime localTime = utcTime.ToLocalTime(); |
二、常用方法程序示例
1. 获取当前本地时间
使用 DateTime.Now
属性可以获取当前的本地日期和时间。
using System;class Program
{static void Main(){// 获取当前本地时间DateTime localTime = DateTime.Now;// 输出本地时间Console.WriteLine("当前本地时间: " + localTime);}
}
2. 获取当前 UTC 时间
如果需要获取协调世界时(UTC),可以使用 DateTime.UtcNow
属性。
using System;class Program
{static void Main(){// 获取当前 UTC 时间DateTime utcTime = DateTime.UtcNow;// 输出 UTC 时间Console.WriteLine("当前 UTC 时间: " + utcTime);}
}
3. 格式化日期和时间
可以使用 ToString()
方法将日期和时间格式化为特定的字符串格式。
using System;class Program
{static void Main(){// 获取当前本地时间DateTime localTime = DateTime.Now;// 格式化输出Console.WriteLine("短日期格式: " + localTime.ToShortDateString());Console.WriteLine("长日期格式: " + localTime.ToLongDateString());Console.WriteLine("短时间格式: " + localTime.ToShortTimeString());Console.WriteLine("长时间格式: " + localTime.ToLongTimeString());Console.WriteLine("自定义格式: " + localTime.ToString("yyyy-MM-dd HH:mm:ss"));}
}
4. 获取特定部分的时间
可以通过 DateTime
的属性获取年、月、日、时、分、秒等部分。
using System;class Program
{static void Main(){// 获取当前本地时间DateTime localTime = DateTime.Now;// 获取时间部分int year = localTime.Year;int month = localTime.Month;int day = localTime.Day;int hour = localTime.Hour;int minute = localTime.Minute;int second = localTime.Second;// 输出时间部分Console.WriteLine($"年: {year}, 月: {month}, 日: {day}");Console.WriteLine($"时: {hour}, 分: {minute}, 秒: {second}");}
}
5. 获取时间戳
如果需要获取当前时间的时间戳(从 1970-01-01 到现在的秒数或毫秒数),可以使用以下方法:
using System;class Program
{static void Main(){// 获取当前时间的时间戳(秒)long timestampSeconds = DateTimeOffset.UtcNow.ToUnixTimeSeconds();// 获取当前时间的时间戳(毫秒)long timestampMilliseconds = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();// 输出时间戳Console.WriteLine("时间戳(秒): " + timestampSeconds);Console.WriteLine("时间戳(毫秒): " + timestampMilliseconds);}
}
6. 获取时区信息
如果需要获取本地时间的时区信息,可以使用 TimeZoneInfo
类。
using System;class Program
{static void Main(){// 获取本地时区TimeZoneInfo localTimeZone = TimeZoneInfo.Local;// 输出时区信息Console.WriteLine("本地时区: " + localTimeZone.DisplayName);Console.WriteLine("时区 ID: " + localTimeZone.Id);Console.WriteLine("当前 UTC 偏移量: " + localTimeZone.BaseUtcOffset);}
}