logo

DateTime в C#

Ми використовували DateTime, коли виникла потреба працювати з датами та часом у C#.

Ми можемо форматувати дату й час у різних форматах за допомогою властивостей і методів DateTime./p>

Значення DateTime знаходиться між 12:00:00 опівночі 1 січня 0001 року та 23:59:59 31 грудня 9999 року нашої ери.

Тут ми пояснимо, як створити DateTime у C#.

У нас є різні способи створення об’єкта DateTime. Об’єкт DateTime має час, культуру, дату, локалізацію, мілісекунди.

Тут ми маємо код, який показує різні конструктори, які використовує структура DateTime для створення об’єктів DateTime.

 // From DateTime create the Date and Time DateTime DOB= new DateTime(19, 56, 8, 12, 8, 12, 23); // From String creation of DateTime string DateString= '8/12/1956 7:10:24 AM'; DateTime dateFromString = DateTime.Parse(DateString, System.Globalization.CultureInfo.InvariantCulture); Console.WriteLine(dateFromString.ToString()); // Empty DateTime DateTime EmpDateTime= new DateTime(); // Just date DateTime OnlyDate= new DateTime(2002, 10, 18); // DateTime from Ticks DateTime OnlyTime= new DateTime(10000000); // Localization with DateTime DateTime DateTimewithKind = new DateTime(1976, 7, 10, 7, 10, 24, DateTimeKind.Local); // DateTime with date, time and milliseconds DateTime WithMilliseconds= new DateTime(2010, 12, 15, 5, 30, 45, 100); 

Властивості DateTime у C#

DateTime має властивість Date and Time. З DateTime ми можемо знайти дату та час. DateTime також містить інші властивості, як-от година, хвилина, секунда, мілісекунда, рік, місяць і день.

Інші властивості DateTime:

  1. Ми можемо отримати назву дня від тижня за допомогою властивості DayOfWeek.
  2. Щоб отримати день року, ми будемо використовувати властивість DayOfYear.
  3. Щоб отримати час у DateTime, ми використовуємо властивість TimeOfDay.
  4. Властивість Today поверне об’єкт DateTime, який має сьогоднішнє значення. Значення часу 12:00:00
  5. Властивість Now поверне об’єкт DateTime, який має поточну дату й час.
  6. Властивість Utc DateTime поверне всесвітній координований час (UTC).
  7. Одна галочка представляє сто наносекунд у DateTime. Властивість Ticks DateTime повертає кількість тактів у DateTime.
  8. Властивість Kind повертає значення, де представлення часу здійснюється екземпляром, який базується на місцевому часі Всесвітній координований час (UTC). Він також показує невизначене значення за замовчуванням.

Тут ми беремо приклад використання властивостей DateTime у коді C#.

приклад:

 using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime DateTimeProperty = new DateTime(1974, 7, 10, 7, 10, 24); Console.WriteLine('Day:{0}', DateTimeProperty.Day); Console.WriteLine('Month:{0}', DateTimeProperty.Month); Console.WriteLine('Year:{0}', DateTimeProperty.Year); Console.WriteLine('Hour:{0}', DateTimeProperty.Hour); Console.WriteLine('Minute:{0}', DateTimeProperty.Minute); Console.WriteLine('Second:{0}', DateTimeProperty.Second); Console.WriteLine('Millisecond:{0}', DateTimeProperty.Millisecond); Console.WriteLine('Day of Week:{0}', DateTimeProperty.DayOfWeek); Console.WriteLine('Day of Year: {0}', DateTimeProperty.DayOfYear); Console.WriteLine('Time of Day:{0}', DateTimeProperty.TimeOfDay); Console.WriteLine('Tick:{0}', DateTimeProperty.Ticks); Console.WriteLine('Kind:{0}', DateTimeProperty.Kind); } } } 

Вихід:

DateTime в C#

Додавання та віднімання DateTime у C#

Структура DateTime надає методи додавання та віднімання дати й часу до об’єкта DateTime і з них. Ми можемо додавати та віднімати дату в структурі DateTime до та від об’єкта DateTime. Для додавання та віднімання в DateTime ми використовуємо структуру TimeSpan.

Для додавання та віднімання ми можемо використовувати метод Add and Subtract з об’єкта DateTime. По-перше, ми створюємо TimeSpan зі значеннями дати та часу, де використовуємо методи Add і Subtract.

Тут ми створюємо код, який додасть 3 і відніме 30 днів від сьогоднішнього дня та відобразить день на консолі.

 using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime Day = DateTime.Now; TimeSpan Month = new System.TimeSpan(30, 0, 0, 0); DateTime aDayAfterAMonth = Day.Add(Month); DateTime aDayBeforeAMonth = Day.Subtract(Month); Console.WriteLine('{0:dddd}', aDayAfterAMonth); Console.WriteLine('{0:dddd}', aDayBeforeAMonth); } } } 

Структура DateTime містить методи додавання років, днів, годин, хвилин, секунд.

Щоб додати різні компоненти до об’єкта DateTime, використовується метод Add .

 // To Add the Years and Days day.AddYears(2); day.AddDays(12); // Add Hours, Minutes, Seconds, Milliseconds, and Ticks Day.AddHours(4.25); day.AddMinutes(15); day.AddSeconds(45); day.AddMilliseconds(200); day.AddTicks(5000); 

DateTime не містить методу віднімання. Щоб відняти компонент DateTime, ми будемо використовувати лише метод subtract. Наприклад: якщо нам потрібно відняти 12 днів від DateTime, ми можемо створити інший об’єкт DateTime або TimeSpan з 12 днями. Тепер ми віднімемо цей об’єкт від DateTime. Крім того, ми також можемо використовувати оператор мінус, щоб відняти DateTime або TimeSpan від DateTime.

Тепер ми створимо код, за допомогою якого ми зможемо створити об’єкт DateTime і відняти інший DateTime і об’єкт TimeSpan. У коді ми покажемо віднімання лише годин, днів або інших компонентів DateTime.

 DateTime DOB = new DateTime(2000, 10, 20, 12, 15, 45); DateTime SubtractDate = new DateTime(2000, 2, 6, 13, 5, 15); // Use the TimeSpan with 10 days, 2 hrs, 30 mins, 45 seconds, and 100 milliseconds TimeSpan ts = new TimeSpan(10, 2, 30, 45, 100); // Subtract the DateTime TimeSpan Different = DOB.Subtract(SubtractDate); Console.WriteLine(Different.ToString()); // Subtract the TimeSpan DateTime Different2 = DOB.Subtract(ts); Console.WriteLine(Different2.ToString()); // Subtract 10 Days by creating the object SubtractedDays DateTime SubtractedDays = new DateTime(DOB.Year, DOB.Month, DOB.Day - 10); Console.WriteLine(SubtractedDays.ToString()); // Subtract hours, minutes, and seconds with creating the object HoursMinutesSeconds DateTime HoursMinutesSeconds = new DateTime(DOB.Year, DOB.Month, DOB.Day, DOB.Hour - 1, DOB.Minute - 15, DOB.Second - 15); Console.WriteLine(HoursMinutesSeconds.ToString()); 

Пошук днів у місяці

Щоб знайти кількість днів у місяці, ми використали статику DaysInMonth метод. Цей метод пошуку [] приймає параметр у числах від 1 до 12.

Тут ми напишемо код, за допомогою якого будемо дізнаватися кількість днів у конкретному місяці.

Тут ми дізнаємося кількість днів у лютому 2020 року. На виході буде 28 днів.

 int NumberOfDays = DateTime.DaysInMonth(2004, 2); Console.WriteLine(NumberOfDays); 

За допомогою тієї ж техніки ми можемо дізнатися загальну кількість днів у році. Для цього ми скористаємося методом DaysInYear.

 private int DaysInYear(int year) { int DaysIN= 0; for (int j = 1; j <= 12; j++) { daysin +="DateTime.DaysInMonth(year," j); } return daysin; < pre> <h2>Comparison of two DateTime in C#</h2> <p> <strong>The comparer</strong> static method is used to compare the object of the two datetime. If the objects of both <strong>DateTime</strong> is the same, then the result will be 0. If the first DateTime is earlier, then the result will be 0 else the first DateTime would be later.</p> <p> <strong>Now we will show the comparison of the two datetime objects in C#.</strong> </p> <pre> using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime DateOfFirst = new DateTime(2002, 10, 22); DateTime DateOfSecond = new DateTime(2009, 8, 11); int result1 = DateTime.Compare(DateOfFirst, DateOfSecond); if (result1 <0) console.writeline('date of first is earlier'); else if (result1="=" 0) console.writeline('both dates are same'); later'); } < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/net-framework/10/datetime-c-2.webp" alt="DateTime in C#"> <h2>CompareTo Method</h2> <p>CompareTo method is used to compare the two dates. We will assign the DateTime or object in this method.</p> <p>To compare the two DateTime object, we used the CompareTo method. Below we have a C# code to compare the DateTime object.</p> <pre> using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime DateOfFirst = new DateTime(2001, 10, 20); DateTime DateOfSecond = new DateTime(2009, 8, 11); int ResultOfComparison = DateOfFirst.CompareTo(DateOfSecond); if (ResultOfComparison <0) console.writeline('date of first is earlier'); else if (resultofcomparison="=" 0) both are same'); later'); } < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/net-framework/10/datetime-c-3.webp" alt="DateTime in C#"> <h2>Formatting of the DateTime in C#</h2> <p>In C#, we can format the DateTime to any type of string format as we want.</p> <p>For the formatting of the DateTime, we used the <strong>GetDateTimeFormats</strong> method, which returns all the possible DateTime formats for the current culture of the computer.</p> <p>Here we have a C# code that returns the array of the strings of all the possible standard formats.</p> <pre> using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime DateOfMonth = new DateTime(2020, 02, 25); string[] FormatsOfDate = DateOfMonth.GetDateTimeFormats(); foreach (string format in FormatsOfDate) Console.WriteLine(format); } } } </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/net-framework/10/datetime-c-4.webp" alt="DateTime in C#"> <br> <img src="//techcodeview.com/img/net-framework/10/datetime-c-5.webp" alt="DateTime in C#"> <p>We can overload the <strong>GetDateTimeFormats</strong> method, which takes the format specifier as a parameter and converts the DateTime to that format. To get the desired format, we need to understand the format of the <strong>DateTime</strong> specifiers.</p> <p>We will show it with the code with the pattern in a table.</p> <table class="table"> <tr> <th>Code</th> <th>Pattern</th> </tr> <tr> <td>&apos;d&apos;</td> <td>Short date</td> </tr> <tr> <td>&apos;D&apos;</td> <td>Long date</td> </tr> <tr> <td>&apos;f&apos;</td> <td>Full date time. Short time.</td> </tr> <tr> <td>&apos;F&apos;</td> <td>Full date time. Long Time.</td> </tr> <tr> <td>&apos;g&apos;</td> <td>Generate date time. Long Time.</td> </tr> <tr> <td>&apos;G&apos;</td> <td>General date time. Long Time.</td> </tr> <tr> <td>&apos;M&apos;,&apos;m.&apos;</td> <td>Month/day</td> </tr> <tr> <td>&apos;O&apos;,&apos;o&apos;</td> <td>Round trip date/time.</td> </tr> <tr> <td>&apos;R&apos;,&apos;r&apos;</td> <td>RFC1123</td> </tr> <tr> <td>&apos;s&apos;</td> <td>Sortable date time.</td> </tr> <tr> <td>&apos;t&apos;</td> <td>Sort Time</td> </tr> <tr> <td>&apos;T&apos;</td> <td>Long Time</td> </tr> <tr> <td>&apos;u&apos;</td> <td>Universal sortable date time.</td> </tr> <tr> <td>&apos;U&apos;</td> <td>Universal full date-time.</td> </tr> <tr> <td>&apos;Y&apos;,&apos;y&apos;</td> <td>Year, Month</td> </tr> </table> <p> <strong>We will specify the format of the DateTime in the below C# Code. </strong> </p> <pre> using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime FormatOfDate = new DateTime(2020, 02, 25); // DateTime Formats: d, D, f, F, g, G, m, o, r, s, t, T, u, U, Console.WriteLine(&apos;----------------&apos;); Console.WriteLine(&apos;d Formats&apos;); Console.WriteLine(&apos;----------------&apos;); string[] DateFormat = FormatOfDate.GetDateTimeFormats(&apos;d&apos;); foreach (string format in DateFormat) Console.WriteLine(format); Console.WriteLine(&apos;----------------&apos;); Console.WriteLine(&apos;D Formats&apos;); Console.WriteLine(&apos;----------------&apos;); DateFormat = FormatOfDate.GetDateTimeFormats(&apos;D&apos;); foreach (string format in DateFormat) Console.WriteLine(format); Console.WriteLine(&apos;----------------&apos;); Console.WriteLine(&apos;f Formats&apos;); Console.WriteLine(&apos;----------------&apos;); DateFormat = FormatOfDate.GetDateTimeFormats(&apos;f&apos;); foreach (string format in DateFormat) Console.WriteLine(format); Console.WriteLine(&apos;----------------&apos;); Console.WriteLine(&apos;F Formats&apos;); Console.WriteLine(&apos;----------------&apos;); DateFormat = FormatOfDate.GetDateTimeFormats(&apos;F&apos;); foreach (string format in DateFormat) Console.WriteLine(format); } } } </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/net-framework/10/datetime-c-6.webp" alt="DateTime in C#"> <br> <img src="//techcodeview.com/img/net-framework/10/datetime-c-7.webp" alt="DateTime in C#"> <p>We can also do the formatting of the DateTime by passing the format specifier in the ToString() method of DateTime. Now we will write the C# code for the formatting of the DateTime using the ToString() method.</p> <pre> Console.WriteLine(DateOfFormat.ToString(&apos;r&apos;)); </pre> <p>Now we will write a C# code for the DateTime format specifiers within the ToString() method.</p> <img src="//techcodeview.com/img/net-framework/10/datetime-c-8.webp" alt="DateTime in C#"> <h2>Get the Leap Year and Daylight-Saving Time</h2> <p>Through the C# Code, we will get the Leap Year and Daylight-Saving Time.</p> <pre> using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime DateOfTime = new DateTime(2020, 02, 22); Console.WriteLine(DateOfTime.IsDaylightSavingTime()); Console.WriteLine(DateTime.IsLeapYear(DateOfTime.Year)); } } } </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/net-framework/10/datetime-c-9.webp" alt="DateTime in C#"> <h2>Conversion of string to the DateTime</h2> <p>To convert the string to a DateTime object, we used the Parse method. In the Parse method, the passing string must have the correct format of the DateTime. For the conversion of the DateTime to the String, the ToString() method is used. </p> <pre> using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { string DT = &apos;2020-02-04T20:12:45-5:00&apos;; DateTime NEWDt = DateTime.Parse(DT); Console.WriteLine(NEWDt.ToString()); } } } </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/net-framework/10/datetime-c-10.webp" alt="DateTime in C#"> <h2>Conversion of DateTime in C#</h2> <p>The structure of the DateTime is full of self-explanatory conversion, which converts the DateTime to the specific type. The methods are ToFileTime, ToLocalTime, ToLongDateString, ToBinary ,ToLongTimeString, ToOADate, ToShortDateString, ToShortTimeString, ToString, and ToUniversalTime.</p> <p>Here we will take an example of C# to convert the DateTime to the specific type.</p> <pre> using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime DOB = new DateTime(2020, 01, 22); Console.WriteLine(&apos;ToString: &apos; + DOB.ToString()); Console.WriteLine(&apos;ToBinary: &apos; + DOB.ToBinary()); Console.WriteLine(&apos;ToFileTime: &apos; + DOB.ToFileTime()); Console.WriteLine(&apos;ToLocalTime: &apos; + DOB.ToLocalTime()); Console.WriteLine(&apos;ToLongDateString: &apos; + DOB.ToLongDateString()); Console.WriteLine(&apos;ToLongTimeString: &apos; + DOB.ToLongTimeString()); Console.WriteLine(&apos;ToOADate: &apos; + DOB.ToOADate()); Console.WriteLine(&apos;ToShortDateString: &apos; + DOB.ToShortDateString()); Console.WriteLine(&apos;ToShortTimeString: &apos; + DOB.ToShortTimeString()); Console.WriteLine(&apos;ToUniversalTime: &apos; + DOB.ToUniversalTime()); } } } </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/net-framework/10/datetime-c-11.webp" alt="DateTime in C#"> <hr></0)></pre></0)></pre></=>

Вихід:

DateTime в C#
DateTime в C#

Ми можемо перевантажити GetDateTimeFormats метод, який приймає специфікатор формату як параметр і перетворює DateTime у цей формат. Щоб отримати бажаний формат, нам потрібно зрозуміти формат Дата, час специфікатори.

Ми покажемо це за допомогою коду з шаблоном у таблиці.

Код Візерунок
'd' Коротке побачення
'D' Довге побачення
'f' Повна дата час. Короткий час.
'F' Повна дата час. Багато часу.
'g' Створити дату і час. Багато часу.
'G' Загальна дата час. Багато часу.
«М», «м». Місяць/день
'О', 'о' Дата/час поїздки туди і назад.
'Р', 'р' RFC1123
's' Сортування за датою та часом.
't' Час сортування
'Т' Багато часу
'в' Універсальна сортована дата і час.
'IN' Універсальна повна дата-час.
'І', 'і' Рік, місяць

Ми вкажемо формат DateTime у наведеному нижче коді C#.

 using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime FormatOfDate = new DateTime(2020, 02, 25); // DateTime Formats: d, D, f, F, g, G, m, o, r, s, t, T, u, U, Console.WriteLine(&apos;----------------&apos;); Console.WriteLine(&apos;d Formats&apos;); Console.WriteLine(&apos;----------------&apos;); string[] DateFormat = FormatOfDate.GetDateTimeFormats(&apos;d&apos;); foreach (string format in DateFormat) Console.WriteLine(format); Console.WriteLine(&apos;----------------&apos;); Console.WriteLine(&apos;D Formats&apos;); Console.WriteLine(&apos;----------------&apos;); DateFormat = FormatOfDate.GetDateTimeFormats(&apos;D&apos;); foreach (string format in DateFormat) Console.WriteLine(format); Console.WriteLine(&apos;----------------&apos;); Console.WriteLine(&apos;f Formats&apos;); Console.WriteLine(&apos;----------------&apos;); DateFormat = FormatOfDate.GetDateTimeFormats(&apos;f&apos;); foreach (string format in DateFormat) Console.WriteLine(format); Console.WriteLine(&apos;----------------&apos;); Console.WriteLine(&apos;F Formats&apos;); Console.WriteLine(&apos;----------------&apos;); DateFormat = FormatOfDate.GetDateTimeFormats(&apos;F&apos;); foreach (string format in DateFormat) Console.WriteLine(format); } } } 

Вихід:

що таке uri
DateTime в C#
DateTime в C#

Ми також можемо виконати форматування DateTime, передавши специфікатор формату в метод ToString() DateTime. Тепер ми напишемо код C# для форматування DateTime за допомогою методу ToString().

 Console.WriteLine(DateOfFormat.ToString(&apos;r&apos;)); 

Тепер ми напишемо код C# для специфікаторів формату DateTime у методі ToString().

DateTime в C#

Отримайте високосний рік і літній час

Через код C# ми отримаємо високосний рік і літній час.

 using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime DateOfTime = new DateTime(2020, 02, 22); Console.WriteLine(DateOfTime.IsDaylightSavingTime()); Console.WriteLine(DateTime.IsLeapYear(DateOfTime.Year)); } } } 

Вихід:

DateTime в C#

Перетворення рядка в DateTime

Щоб перетворити рядок на об’єкт DateTime, ми використали метод Parse. У методі Parse рядок передачі повинен мати правильний формат DateTime. Для перетворення DateTime на String використовується метод ToString().

 using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { string DT = &apos;2020-02-04T20:12:45-5:00&apos;; DateTime NEWDt = DateTime.Parse(DT); Console.WriteLine(NEWDt.ToString()); } } } 

Вихід:

DateTime в C#

Перетворення DateTime у C#

Структура DateTime містить зрозуміле перетворення, яке перетворює DateTime на певний тип. Методи: ToFileTime, ToLocalTime, ToLongDateString, ToBinary, ToLongTimeString, ToOADate, ToShortDateString, ToShortTimeString, ToString і ToUniversalTime.

Тут ми розглянемо приклад C#, щоб перетворити DateTime на певний тип.

 using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime DOB = new DateTime(2020, 01, 22); Console.WriteLine(&apos;ToString: &apos; + DOB.ToString()); Console.WriteLine(&apos;ToBinary: &apos; + DOB.ToBinary()); Console.WriteLine(&apos;ToFileTime: &apos; + DOB.ToFileTime()); Console.WriteLine(&apos;ToLocalTime: &apos; + DOB.ToLocalTime()); Console.WriteLine(&apos;ToLongDateString: &apos; + DOB.ToLongDateString()); Console.WriteLine(&apos;ToLongTimeString: &apos; + DOB.ToLongTimeString()); Console.WriteLine(&apos;ToOADate: &apos; + DOB.ToOADate()); Console.WriteLine(&apos;ToShortDateString: &apos; + DOB.ToShortDateString()); Console.WriteLine(&apos;ToShortTimeString: &apos; + DOB.ToShortTimeString()); Console.WriteLine(&apos;ToUniversalTime: &apos; + DOB.ToUniversalTime()); } } } 

Вихід:

DateTime в C#