目錄
一、DateTime?類的常用方法和屬性的匯總表格
二、常用方法程序示例
1.?獲取當前本地時間
2.?獲取當前 UTC 時間
3.?格式化日期和時間
4.?獲取特定部分的時間
5.?獲取時間戳
6.?獲取時區信息
三、總結
一、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);}
}
三、總結
-
使用?
DateTime.Now
?獲取本地系統時間。 -
使用?
DateTime.UtcNow
?獲取 UTC 時間。 -
使用?
ToString()
?方法格式化日期和時間。 -
使用?
DateTime
?的屬性獲取年、月、日、時、分、秒等部分。 -
使用?
DateTimeOffset
?獲取時間戳。 -
使用?
TimeZoneInfo
?獲取時區信息。