logo

Дата и час в C#

Използвахме DateTime, когато има нужда да работим с датите и часовете в C#.

Можем да форматираме датата и часа в различни формати чрез свойствата и методите на DateTime./p>

Стойността на DateTime е между 12:00:00 полунощ, 1 януари 0001 г. и 23:59:59 PM, 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 има свойството Дата и час. От 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); } } } 

Изход:

Дата и час в C#

Добавяне и изваждане на DateTime в C#

Структурата DateTime предоставя методите за добавяне и изваждане на датата и часа към и от обекта DateTime. Можем да добавяме и изваждаме датата в структурата DateTime към и от обекта DateTime. За събирането и изваждането в DateTime използваме структурата TimeSpan.

За събиране и изваждане можем да използваме метода за добавяне и изваждане от обекта 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, ще използваме само метода за изваждане. Например: ако трябва да извадим 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()); 

Търсене на дните в месеца

За да намерим броя на дните в месеца, използвахме статиката Дни В Месеца метод. Този метод на търсене [] приема параметъра в числа от 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></=>

Изход:

Дата и час в C#
Дата и час в C#

Можем да претоварим GetDateTimeFormats метод, който приема спецификатора на формата като параметър и преобразува DateTime в този формат. За да получим желания формат, трябва да разберем формата на Време за среща спецификатори.

Ще го покажем с кода с модела в таблица.

Код модел
'д' Кратка среща
'Д' Дълга среща
'е' Пълна дата час. Кратко време.
'F' Пълна дата час. Дълго време.
'g' Генериране на дата и час. Дълго време.
'G' Обща дата час. Дълго време.
„М“, „м“. Месец/ден
'О', 'О' Дата/час на отиване и връщане.
'R', 'r' RFC1123
'с' Дата и час с възможност за сортиране.
'T' Време за сортиране
'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); } } } 

Изход:

символ към низ в java
Дата и час в C#
Дата и час в C#

Можем също да направим форматирането на DateTime, като предадем спецификатора на формата в метода ToString() на DateTime. Сега ще напишем C# кода за форматиране на DateTime с помощта на метода ToString().

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

Сега ще напишем C# код за спецификаторите на формата DateTime в рамките на метода ToString().

Дата и час в 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)); } } } 

Изход:

Дата и час в 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()); } } } 

Изход:

Дата и час в 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()); } } } 

Изход:

Дата и час в C#