<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # C# 中的日期和時間 > 原文: [https://zetcode.com/csharp/datetime/](https://zetcode.com/csharp/datetime/) 在本教程中,我們展示了如何在 C# 中使用日期和時間。 [C# 教程](http://zetcode.com/lang/csharp/)是有關 C# 語言的綜合教程。 ## C# `DateTime` `DateTime`值類型表示日期和時間,其值的范圍是公歷 0001 年 1 月 1 日凌晨 00:00:00(午夜)(公元)至 9999 年 12 月 31 日晚上 11:59:59(公元)。 ## C# `TimeSpan` `TimeSpan`表示時間間隔(時間或經過的時間),以天,小時,分鐘,秒和幾分之一秒的正數或負數測量。 `TimeZoneInfo`提供了時區信息和可用于不同時區的工具。 ## C# 今天的日期 在第一個示例中,我們得到今天的日期。 `Program.cs` ```cs using System; namespace Today { class Program { static void Main(string[] args) { DateTime now = DateTime.Now; Console.WriteLine(now.ToString("F")); } } } ``` 該示例打印今天的日期。 ```cs DateTime now = DateTime.Now; ``` 通過`DateTime`的`Now`屬性,我們可以獲取當地時間的當前日期和時間。 ```cs Console.WriteLine(now.ToString("F")); ``` 使用`ToString()`方法,我們格式化日期。 `F`說明符創建完整的日期和時間模式。 ```cs $ dotnet run Tuesday, November 5, 2019 11:35:23 AM ``` 這是程序的示例輸出。 ## C# `DateTime`屬性 `DateTime`代表時間的瞬間。 它的屬性提供日期和時間的各個方面。 `Program.cs` ```cs using System; namespace DateTimeProperties { class Program { static void Main(string[] args) { string[] months = {"January", "February", "March", "April", "May", "June", "July", "September", "October", "November", "December"}; DateTime now = DateTime.Now; Console.WriteLine("Today's date: {0}", now.Date); Console.WriteLine("Today is {0} day of {1}", now.Day, months[now.Month - 1]); Console.WriteLine("Today is {0} day of {1}", now.DayOfYear, now.Year); Console.WriteLine("Today's time: {0}", now.TimeOfDay); Console.WriteLine("Hour: {0}", now.Hour); Console.WriteLine("Minute: {0}", now.Minute); Console.WriteLine("Second: {0}", now.Second); Console.WriteLine("Millisecond: {0}", now.Millisecond); Console.WriteLine("The day of week: {0}", now.DayOfWeek); Console.WriteLine("Kind: {0}", now.Kind); } } } ``` 該示例檢查`DateTime`對象的屬性。 ```cs DateTime now = DateTime.Now; ``` 創建一個`DateTime`對象。 `DateTime`被設置為該計算機上的當前本地日期和時間。 ```cs Console.WriteLine("Today's date: {0}", now.Date); ``` `Date`屬性獲取`DateTime`實例的日期部分。 ```cs Console.WriteLine("Today is {0} day of {1}", now.Day, months[now.Month - 1]); ``` `Day`屬性獲取每月的某天。 `Month`屬性返回月份部分,表示為 1 到 12 之間的值。 ```cs Console.WriteLine("Today is {0} day of {1}", now.DayOfYear, now.Year); ``` `DayOfYear`屬性獲取年份,`Year`屬性獲取年份。 ```cs Console.WriteLine("Today's time: {0}", now.TimeOfDay); ``` `TimeOfDay`屬性獲取`DateTime`實例的一天中的時間。 ```cs Console.WriteLine("Hour: {0}", now.Hour); Console.WriteLine("Minute: {0}", now.Minute); Console.WriteLine("Second: {0}", now.Second); Console.WriteLine("Millisecond: {0}", now.Millisecond); ``` `Hour`,`Minute`,`Second`和`Millisecond`是時間分量的一部分。 ```cs Console.WriteLine("The day of week: {0}", now.DayOfWeek); ``` `DayOfWeek`屬性獲取星期幾。 ```cs Console.WriteLine("Kind: {0}", now.Kind); ``` `Kind`屬性返回一個值,該值指示此`DateTime`實例表示的時間是基于本地時間,世界協調時間(UTC)還是都不基于。 ```cs $ dotnet run Today's date: 11/5/2019 12:00:00 AM Today is 5 day of December Today is 309 day of 2019 Today's time: 11:38:45.6791473 Hour: 11 Minute: 38 Second: 45 Millisecond: 679 The day of week: Tuesday Kind: Local ``` This is a sample output of the program. ## C# 加減`DateTime` `DateTime`具有進行時間算術運算的方法。 `Program.cs` ```cs using System; namespace TimeArithmetic { class Program { static void Main(string[] args) { DateTime dt = new DateTime(2019, 2, 22, 14, 0, 0); DateTime dt1 = dt.AddSeconds(55); DateTime dt2 = dt.AddMinutes(30); DateTime dt3 = dt.AddHours(72); DateTime dt4 = dt.AddDays(65); DateTime dt5 = dt.AddDays(-65); DateTime dt6 = dt.AddMonths(3); DateTime dt7 = dt.AddYears(4); Console.WriteLine(dt1.ToString("F")); Console.WriteLine(dt2.ToString("F")); Console.WriteLine(dt3.ToString("F")); Console.WriteLine(dt4.ToString("F")); Console.WriteLine(dt5.ToString("F")); Console.WriteLine(dt6.ToString("F")); Console.WriteLine(dt7.ToString("F")); } } } ``` 該示例介紹了`DateTime`對象的六種方法。 ```cs DateTime dt1 = dt.AddSeconds(55); ``` `AddSeconds()`返回一個新的`DateTime`,該值將指定的秒數添加到該實例的值。 ```cs DateTime dt4 = dt.AddDays(65); DateTime dt5 = dt.AddDays(-65); ``` `AddDays()`為`DateTime`增加了幾天。 我們可以提供正值或負值。 ```cs $ dotnet run Friday, February 22, 2019 2:00:55 PM Friday, February 22, 2019 2:30:00 PM Monday, February 25, 2019 2:00:00 PM Sunday, April 28, 2019 2:00:00 PM Wednesday, December 19, 2018 2:00:00 PM Wednesday, May 22, 2019 2:00:00 PM Wednesday, February 22, 2023 2:00:00 PM ``` 這是示例的輸出。 ## C# UTC 時間 我們的星球是一個球體; 它繞其軸旋轉。 地球向東旋轉,因此太陽在不同位置的不同時間升起。 地球大約每 24 小時旋轉一次。 因此,世界被劃分為 24 個時區。 在每個時區,都有一個不同的本地時間。 夏令時通常會進一步修改此本地時間。 實際需要一個全球時間。 全球時間可以避免時區和夏令時的混淆。 UTC(世界標準時間)被選為主要時間標準。 UTC 用于航空,天氣預報,飛行計劃,空中交通管制通關和地圖。 與當地時間不同,UTC 不會隨季節變化而變化。 `Program.cs` ```cs using System; namespace UniversalTime { class Program { static void Main(string[] args) { DateTime now = DateTime.Now; DateTime utc = DateTime.UtcNow; Console.WriteLine($"UTC time {utc:HH:mm:ss}"); Console.WriteLine($"Local time {now:HH:mm:ss}"); } } } ``` 該示例打印當前的 UTC 時間和本地時間。 ```cs DateTime utc = DateTime.UtcNow; ``` 通過`DateTime`的`UtcNow`屬性,我們獲得了 UTC 時間。 ```cs Console.WriteLine($"UTC time {utc:HH:mm:ss}"); ``` 我們格式化時間。 ```cs $ dotnet run UTC time 10:48:16 Local time 11:48:16 ``` 對于 CET 時區,時差為一小時。 ## C# 本地化日期 `DateTime`允許我們顯示特定區域性的日期和時間。 `Program.cs` ```cs using System; using System.Globalization; namespace Localized { class Program { static void Main(string[] args) { Console.OutputEncoding = System.Text.Encoding.UTF8; DateTime now = DateTime.Now; CultureInfo ci = new CultureInfo("sk-SK"); Console.WriteLine($"Dne?ny dátum a ?as: {now.ToString("F", ci)}"); } } } ``` 該示例打印斯洛伐克文化中的當前日期和時間。 ```cs Console.OutputEncoding = System.Text.Encoding.UTF8; ``` 為了正確輸出帶重音的斯洛伐克語字符,我們將控制臺輸出編碼設置為 UTF8。 ```cs CultureInfo ci = new CultureInfo("sk-SK"); ``` 我們創建了一個斯洛伐克語`CultureInfo`,其中包括有關區域性名稱,書寫系統,使用的日歷,字符串的排序順序以及日期和數字格式的信息。 ```cs Console.WriteLine($"Dne?ny dátum a ?as: {now.ToString("F", ci)}"); ``` 我們以完整的日期和時間格式模式打印日期和時間。 ```cs $ dotnet run Dne?ny dátum a ?as: utorok 5\. novembra 2019 12:03:25 ``` 這是程序的輸出。 ## C# Unix 時間 Unix 時間是自 Unix 時代以來的秒數。 Unix 時間廣泛用于計算。 沒有方法可以在 C# 中獲得 Unix 時間。 我們需要創建自己的計算。 `Program.cs` ```cs using System; namespace UnixTime { class Program { static void Main(string[] args) { long unixTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); Console.WriteLine(unixTime); } } } ``` 該示例顯示 Unix 時間。 ```cs long unixTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); ``` 我們使用`ToUnixTimeSeconds()`方法獲得 Unix 時間。 ```cs $ dotnet run 1572952370 ``` 此刻,自 Unix 時代以來已經過了`1572952370`秒。 ## C# `TimeSpan` `TimeSpan`結構表示時間間隔。 `subtract_times.cs` ```cs using System; namespace SubtractingTimes { class Program { static void Main(string[] args) { string startTime = "7:00 AM"; string endTime = "8:30 PM"; TimeSpan elapsed = DateTime.Parse(endTime).Subtract(DateTime.Parse(startTime)); Console.WriteLine($"Time elapsed: {elapsed}"); } } } ``` 在示例中,我們減去兩個時間值。 ```cs string startTime = "7:00 AM"; string endTime = "8:30 PM"; ``` 我們定義了兩個表示為字符串的時間值。 ```cs TimeSpan elapsed = DateTime.Parse(endTime).Subtract(DateTime.Parse(startTime)); ``` `Subtract()`方法用于減去兩個時間值。 `Parse()`方法將時間間隔的字符串表示形式轉換為`TimeSpan`對象。 ```cs $ dotnet run Time elapsed: 13:30:00 ``` 區別是 13 小時 30 分鐘。 在下面的示例中,我們減去兩個日期值。 `Program.cs` ```cs using System; namespace BorodinoBattle { class Program { static void Main(string[] args) { DateTime now = DateTime.Today; DateTime borodino_battle = new DateTime(1812, 9, 7); TimeSpan diff = now - borodino_battle; Console.WriteLine($"{diff.TotalDays} days have passed since the Battle of Borodino."); } } } ``` 在示例中,我們計算了自 Borodino 戰斗以來經過的天數。 ```cs DateTime now = DateTime.Today; DateTime borodino_battle = new DateTime(1812, 9, 7); ``` 我們定義了兩個`DateTime`對象:一個用于今天,另一個用于在 Borodino 戰斗的日期。 ```cs TimeSpan diff = now - borodino_battle; ``` 通過減去這兩個對象,我們得到一個`TimeSpan`對象。 ```cs Console.WriteLine($"{diff.TotalDays} days have passed since the Battle of Borodino."); ``` `TotalDays`屬性具有經過時間的天數。 ```cs $ dotnet run 75664 days have passed since the Battle of Borodino. ``` 自 Borodino 戰役以來,于 2019 年 11 月 5 日過去了 75664 天。 ## C# 格式化時間 日期和時間格式字符串定義了由格式化操作產生的`DateTime`或`DateTimeOffset`值的文本表示形式。 格式說明符有兩種類型:標準和自定義。 自定義日期和時間格式字符串由兩個或多個字符組成。 `Program.cs` ```cs using System; namespace StandardSpecifiers { class Program { static void Main(string[] args) { DateTime now = DateTime.Now; Console.WriteLine(now.ToString("d")); Console.WriteLine(now.ToString("D")); Console.WriteLine(now.ToString("F")); Console.WriteLine(now.ToString("M")); Console.WriteLine(now.ToString("o")); Console.WriteLine(now.ToString("R")); Console.WriteLine(now.ToString("t")); Console.WriteLine(now.ToString("T")); Console.WriteLine(now.ToString("Y")); } } } ``` 該示例使用某些標準格式說明符打印今天的日期。 ```cs Console.WriteLine(now.ToString("d")); ``` `d`說明符創建一個短日期模式。 ```cs Console.WriteLine(now.ToString("D")); ``` `D`說明符創建一個長日期模式。 ```cs Console.WriteLine(now.ToString("F")); ``` `F`說明符創建完整的日期和時間模式。 ```cs Console.WriteLine(now.ToString("M")); ``` `M`說明符創建月和日模式。 ```cs Console.WriteLine(now.ToString("o")); ``` `o`說明符創建往返日期和時間模式。 在此模式中,日期和時間部分由`T`字符分隔,并且時區偏差附加在字符串的末尾。 ```cs Console.WriteLine(now.ToString("R")); ``` `R`說明符創建一個 RFC1123 日期和時間模式。 ```cs Console.WriteLine(now.ToString("t")); ``` `t`說明符創建一個短時間模式。 ```cs Console.WriteLine(now.ToString("T")); ``` `t`說明符創建長時間模式。 ```cs Console.WriteLine(now.ToString("Y")); ``` `Y`說明符創建年和月模式。 ```cs $ dotnet run 11/5/2019 Tuesday, November 5, 2019 Tuesday, November 5, 2019 1:05:46 PM November 5 2019-11-05T13:05:46.5778252+01:00 Tue, 05 Nov 2019 13:05:46 GMT 1:05 PM 1:05:46 PM November 2019 ``` This is the output of the example. 自定義格式說明符使我們可以創建自定義的日期和時間格式模式。 `Program.cs` ```cs using System; namespace CustomSpecifiers { class Program { static void Main(string[] args) { DateTime now = DateTime.Now; Console.WriteLine(now.ToString("ddd MMM %d, yyyy")); Console.WriteLine(now.ToString("hh:mm:ss tt")); } } } ``` 該示例使用自定義說明符打印日期和時間格式。 ```cs Console.WriteLine(now.ToString("ddd MMM %d, yyyy")); ``` `ddd`指示符是星期幾的縮寫名稱,`MMM`是該月的縮寫名,`d`是該月的某天,從 1 到 31。在自定義說明符的上下文中 ,它前面必須帶有`%`字符。 最后,`yyyy`是四位數的年份。 ```cs Console.WriteLine(now.ToString("hh:mm:ss tt")); ``` `hh`說明符是小時,使用從 01 到 12 的 12 小時制時鐘,`mm`是分鐘,從 00 到 59,`ss`是秒,從 00 到 59,并且`tt`是 AM/PM 指示符。 ```cs $ dotnet run Tue Nov 5, 2019 01:07:51 PM ``` This is the output of the program. ## C# 解析時間 `DateTime`的`Parse()`方法將日期和時間的字符串表示形式轉換為其等效的`DateTime`。 `Program.cs` ```cs using System; namespace ParseTime { class Program { static void Main(string[] args) { string date_string = "11/5/2019"; DateTime dt = DateTime.Parse(date_string); Console.WriteLine($"{dt:d MMMM, yyyy}"); } } } ``` 程序將日期解析為字符串。 ```cs string date_string = "11/5/2019"; ``` 這是一個以字符串表示的日期。 ```cs DateTime dt = DateTime.Parse(date_string); ``` 使用`Parse()`方法,我們將其解析為`DateTime`對象。 ```cs Console.WriteLine($"{dt:d MMMM, yyyy}"); ``` 日期以中端順序打印到控制臺。 ```cs $ dotnet run 5 November, 2019 ``` This is the output of the example. ## C# 時區 時區是一個使用相同標準時間的區域。 世界上有 24 個時區。 ```cs UTC = local time + bias ``` 偏差是 UTC 時間與本地時間之間的時差。 `TimeZoneInfo`是用于使用 C# 中的時區的類。 `Program.cs` ```cs using System; namespace LocalZone { class Program { static void Main(string[] args) { TimeZoneInfo localZone = TimeZoneInfo.Local; Console.WriteLine("Current timezone: {0}", localZone.StandardName); Console.WriteLine("Daylight name: {0}", localZone.DaylightName); Console.WriteLine("Bias: {0}", localZone.BaseUtcOffset); } } } ``` 該程序將打印當前時區和偏差。 ```cs TimeZoneInfo localZone = TimeZoneInfo.Local; ``` 使用`Local`屬性,我們可以獲得本地時區。 ```cs Console.WriteLine("Current timezone: {0}", localZone.StandardName); Console.WriteLine("Daylight name: {0}", localZone.DaylightName); ``` `StandardName`給出時區的標準名稱,`DaylightName`給出夏令時的名稱。 ```cs Console.WriteLine("Bias: {0}", localZone.BaseUtcOffset); ``` `BaseUtcOffset`屬性產生偏差。 ```cs $ dotnet run Current timezone: Central Europe Standard Time Daylight name: Central Europe Daylight Time Bias: 01:00:00 ``` 在位于布拉迪斯拉發的系統上,我們獲得了這些值。 `GetSystemTimeZones()`方法返回所有時區的排序集合,有關這些時區的信息在本地系統上可用。 `Program.cs` ```cs using System; namespace TimeZones { class Program { static void Main(string[] args) { var timezones = TimeZoneInfo.GetSystemTimeZones(); foreach (var timezone in timezones) { Console.WriteLine(timezone.Id); } } } } ``` 該示例在系統上打印可用時區的 ID。 ```cs $ dotnet run ... Newfoundland Standard Time Tocantins Standard Time E. South America Standard Time SA Eastern Standard Time Argentina Standard Time Greenland Standard Time Montevideo Standard Time Magallanes Standard Time Saint Pierre Standard Time Bahia Standard Time UTC-02 Mid-Atlantic Standard Time Azores Standard Time Cape Verde Standard Time UTC ... ``` 這是程序的部分輸出。 還可以使用某些格式說明符從`DateTime`值中檢索時區信息。 `Program.cs` ```cs using System; namespace GetTimeZone { class Program { static void Main(string[] args) { DateTime now = DateTime.Now; Console.WriteLine(now.ToString("%z")); Console.WriteLine(now.ToString("%K")); Console.WriteLine(now.ToString("o")); } } } ``` 該示例使用格式說明符來表示本地時區的偏差。 ```cs $ dotnet run +1 +01:00 2019-11-05T13:02:26.2345688+01:00 ``` 這是反對。 ## C# 閏年 閏年是包含另一天的年份。 日歷中額外一天的原因是天文日歷年與日歷年之間的差異。 `Program.cs` ```cs using System; namespace LeapYears { class Program { static void Main(string[] args) { // Assume year >= 1582 in the Gregorian calendar. int[] years = { 2000, 2002, 2004, 2008, 2012, 2016, 2020, 1900, 1800, 1600 }; foreach (int year in years) { if (DateTime.IsLeapYear(year)) { Console.WriteLine($"{year} is a leap year"); } else { Console.WriteLine($"{year} is not a leap year"); } } } } } ``` 我們有很多年。 我們檢查所有年份是否為閏年。 `IsLeapYear()`函數確定年份是否為閏年。 ```cs int[] years = { 2000, 2002, 2004, 2008, 2012, 2016, 2020, 1900, 1800, 1600 }; ``` 這是我們檢查的年份。 年份必須在公歷中。 ```cs foreach (int year in years) { if (DateTime.IsLeapYear(year)) { Console.WriteLine($"{year} is a leap year"); } else { Console.WriteLine($"{year} is not a leap year"); } } ``` 使用`for`循環,我們遍歷數組。 我們使用`IsLeapYear()`函數檢查年份是否為閏年。 ```cs $ dotnet run 2000 is a leap year 2002 is not a leap year 2004 is a leap year 2008 is a leap year 2012 is a leap year 2016 is a leap year 2020 is a leap year 1900 is not a leap year 1800 is not a leap year 1600 is a leap year ``` This is the output of the program. 在本文中,我們使用 C# 處理日期和時間。 [在 C# 中讀取網頁](http://zetcode.com/csharp/readwebpage/)顯示了幾種在 C# 中抓取網頁的方法。 [以 C# 讀取文本文件](/csharp/readtext/)涵蓋了使用流以 C# 讀取文本文件的過程。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看