時間在計算機編程中是必不可少的,下面我們從各種方面詳解C#中如何獲取時間。
一、獲取當前時間
獲取當前時間是最常見的需求,C#中我們使用DateTime.Now屬性即可獲取當前時間。示例代碼如下:
DateTime current = DateTime.Now;
Console.WriteLine("當前時間:" + current);
通過上面的代碼代碼,我們可以輕鬆得到當前的時間。
二、獲取指定時間
有時我們需要獲取指定時間,這時我們可以使用DateTime.Parse方法將指定的字符串轉換為DateTime對象。例如,我們要獲取2022年5月1日8點30分的時間,示例如下:
DateTime specified = DateTime.Parse("2022-05-01 08:30:00");
Console.WriteLine(specified);
通過上面的代碼,我們獲得了指定時間的DateTime對象。
三、獲取時間戳
時間戳是指1970年1月1日0時0分0秒到現在的總秒數,它在很多場景下都有用到,例如網絡通信。C#中獲取時間戳的方法如下:
TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
long timestamp = Convert.ToInt64(ts.TotalSeconds);
Console.WriteLine(timestamp);
通過上面代碼,我們獲得了當前時間的時間戳。
四、獲取時間間隔
有時候我們需要計算兩個時間之間的時間間隔,這時我們可以使用DateTime.Subtract方法,代碼示例如下:
DateTime startTime = DateTime.Parse("2022-01-01 00:00:00");
DateTime endTime = DateTime.Now;
TimeSpan ts = endTime.Subtract(startTime);
Console.WriteLine("距離2022年元旦已經過去了:" + ts.Days + "天" + ts.Hours + "小時" + ts.Minutes + "分鐘" + ts.Seconds + "秒");
通過上面的代碼,我們得到了距離2022年元旦已經過去的時間。
五、格式化時間
有時候我們需要將時間格式化為自己想要的格式,這時我們可以使用DateTime.ToString方法,代碼示例如下:
DateTime current = DateTime.Now;
string format = "yyyy-MM-dd HH:mm:ss";
string formatted = current.ToString(format);
Console.WriteLine("當前時間:" + formatted);
通過上面的代碼,我們將當前時間格式化為了”yyyy-MM-dd HH:mm:ss”樣式的字符串。
六、時區轉換
在跨時區的應用中,時區轉換是一個很重要的任務。C#中提供了TimeZoneInfo.ConvertTime方法來進行時區轉換,代碼示例如下:
DateTime utcTime = DateTime.UtcNow;
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("China Standard Time");
DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, cstZone);
Console.WriteLine("UTC時間:" + utcTime.ToString("yyyy-MM-dd HH:mm:ss"));
Console.WriteLine("CST時間:" + cstTime.ToString("yyyy-MM-dd HH:mm:ss"));
以上代碼展示了如何將UTC時間轉換為CST時間。
七、獲取時間的各個部分
有時候我們需要獲取時間的各個部分,例如年、月、日、小時、分鐘和秒等,這時我們可以使用DateTime中的屬性來獲取,示例代碼如下:
DateTime current = DateTime.Now;
Console.WriteLine("年:" + current.Year);
Console.WriteLine("月:" + current.Month);
Console.WriteLine("日:" + current.Day);
Console.WriteLine("小時:" + current.Hour);
Console.WriteLine("分鐘:" + current.Minute);
Console.WriteLine("秒:" + current.Second);
通過上面代碼,我們將時間拆分成了各個部分,方便我們需要針對具體時間部分進行操作。
原創文章,作者:TYYX,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/136637.html