"

کار با datetime در سی‌شارپ,ایجاد یک DateTime جدید در سی شارپ,قالب‌بندی تاریخ در سی شارپ

کار با datetime در سی‌شارپ

کار با datetime در سی‌شارپ یکی از ساختارهای اصلی در زبان #C برای ذخیره و مدیریت اطلاعات مربوط به تاریخ و زمان است.

تیم تحریریه
9
0
30 تیر 1405
لینک کوتاه

کار با DateTime در سی‌شارپ

کار با تاریخ و زمان یکی از رایج‌ترین نیازها در توسعه نرم‌افزار است.
تقریباً هیچ برنامه‌ای را نمی‌توان پیدا کرد که با داده‌های زمانی سروکار نداشته باشد؛ از ثبت زمان ورود کاربران و ایجاد گزارش‌های مالی گرفته تا زمان‌بندی وظایف، محاسبه اختلاف بین دو تاریخ و نمایش زمان محلی کاربران. در زبان #C، ساختار DateTime یکی از مهم‌ترین ابزارها برای مدیریت تاریخ و زمان محسوب می‌شود.

کلاس DateTime که در فضای نام System قرار دارد، امکانات متنوعی برای ایجاد، مقایسه، قالب‌بندی و انجام محاسبات روی تاریخ و زمان در اختیار برنامه‌نویسان قرار می‌دهد. اگرچه استفاده اولیه از آن ساده است، اما آشنایی با قابلیت‌های پیشرفته‌تر آن می‌تواند از بروز خطاهای رایج در پروژه‌های واقعی جلوگیری کند.

 

کار با DateTime در سی‌شارپ

DateTime چیست؟

DateTime یک ساختار (Struct) در دات‌نت است که اطلاعات مربوط به تاریخ و زمان را در یک متغیر ذخیره می‌کند.

نمونه تعریف:

 

DateTime today = DateTime.Now;

 

در این مثال تاریخ و ساعت فعلی سیستم در متغیر today ذخیره می‌شود.

 

دریافت تاریخ و زمان جاری

یکی از پرکاربردترین قابلیت‌های DateTime، دریافت زمان فعلی است.

 

تاریخ و ساعت محلی

DateTime.Now

 

نمونه خروجی:

 

2026-07-18 15:42:30

فقط تاریخ

DateTime.Today

 

این مقدار ساعت را برابر 00:00:00 قرار می‌دهد.

 

زمان جهانی (UTC)

DateTime.UtcNow

 

در برنامه‌های تحت وب و سیستم‌های توزیع‌شده معمولاً توصیه می‌شود زمان‌ها به صورت UTC ذخیره شوند.

 

ایجاد یک DateTime جدید در سی شارپ

می‌توان یک تاریخ دلخواه ایجاد کرد.

 

DateTime birthday = new DateTime(1998,5,12);

 

همچنین امکان تعیین ساعت نیز وجود دارد.

 

DateTime meeting =

new DateTime(2026,8,15,14,30,0);

 

در این مثال تاریخ جلسه برابر ۱۵ آگوست ۲۰۲۶ ساعت ۱۴:۳۰ خواهد بود.

 

دسترسی به اجزای تاریخ

DateTime دارای ویژگی‌های متعددی است.

 

DateTime now = DateTime.Now;




Console.WriteLine(now.Year);

Console.WriteLine(now.Month);

Console.WriteLine(now.Day);

Console.WriteLine(now.Hour);

Console.WriteLine(now.Minute);

Console.WriteLine(now.Second);

 

خروجی:

 

2026

7

18

15

42

30

 

سایر ویژگی‌های مهم:

 

  • DayOfWeek
  • DayOfYear
  • TimeOfDay
  • Millisecond

قالب‌بندی تاریخ در سی شارپ

نمایش تاریخ یکی از مهم‌ترین بخش‌های کار با DateTime است.

 

قالب استاندارد

DateTime.Now.ToString()

نمایش سفارشی

DateTime.Now.ToString("yyyy/MM/dd")

 

خروجی

 

2026/07/18

 

نمونه دیگر

 

DateTime.Now.ToString("dd-MM-yyyy")

 

خروجی

 

18-07-2026

 

نمایش ساعت

 

DateTime.Now.ToString("HH:mm:ss")

 

خروجی

 

15:42:30

 

نمایش نام ماه

 

DateTime.Now.ToString("MMMM")

 

خروجی

 

July

همچنین می‌توان با استفاده از CultureInfo تاریخ را مطابق زبان و فرهنگ‌های مختلف نمایش داد.




آیا به دنبال یک فرصت عالی برای یادگیری برنامه‌نویسی هستید؟ 🚀

با دوره آموزشی سی‌شارپ ما، شما می‌توانید مهارت‌های خود را به سطح جدیدی ارتقا دهید! این دوره به‌طور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامه‌نویسی سی‌شارپ پیش بروید.

👨‍🏫 چرا دوره ما را انتخاب کنید؟

  • محتوای جامع و عملی: با پروژه‌های واقعی و تمرینات عملی، یادگیری را به تجربه‌ای جذاب تبدیل کنید.
  • مدرس مجرب: از تجربه و دانش مدرس حرفه‌ای بهره‌مند شوید که شما را در هر مرحله از یادگیری راهنمایی می‌کنند.
  • پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
  • دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، می‌توانید به آن مراجعه کنید.

💡 فرصت را از دست ندهید!

بایادگیری سی‌شارپ، می‌توانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژه‌های جذاب و چالش‌برانگیز شرکت کنید.

همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده‌ای روشن‌تر بردارید!

شرکت در دوره آموزش برنامه نویسی سی شارپ





تبدیل رشته به DateTime در سی شارپ

گاهی تاریخ از کاربر دریافت می‌شود.

 

string input = "2026-07-18";




DateTime date =

DateTime.Parse(input);

 

اگر احتمال خطا وجود داشته باشد بهتر است از:

 

DateTime.TryParse()

 

استفاده شود.

 

نمونه

 

if(DateTime.TryParse(input,out DateTime result))

{

Console.WriteLine(result);

}

 

مزیت TryParse این است که در صورت ورود اطلاعات نامعتبر، برنامه دچار Exception نمی‌شود.

 

مقایسه تاریخ‌ها

 

برای مقایسه دو تاریخ می‌توان از عملگرهای معمولی استفاده کرد.

 

DateTime start =

new DateTime(2026,1,1);




DateTime end =

new DateTime(2026,12,31);




bool result =

start < end;

 

همچنین:

 

==




!=




>




<




>=




<=

 

همگی قابل استفاده هستند.

 

محاسبه اختلاف دو تاریخ

اختلاف دو DateTime یک شیء از نوع TimeSpan برمی‌گرداند.

 

DateTime d1 =

new DateTime(2026,1,1);




DateTime d2 =

new DateTime(2026,1,20);




TimeSpan diff = d2-d1;

نمایش تعداد روزها

Console.WriteLine(diff.Days);

 

خروجی

 

19

 

همچنین می‌توان دریافت:

  • TotalDays
  • TotalHours
  • TotalMinutes
  • TotalSeconds

خطاهای رایج هنگام کار با DateTime در سی شارپ

برخی از اشتباهات متداول عبارت‌اند از:

  • ذخیره زمان محلی به جای UTC
  • استفاده از Parse بدون مدیریت خطا
  • فراموش کردن تفاوت Culture در تبدیل تاریخ
  • مقایسه رشته‌های تاریخ به جای اشیای DateTime
  • استفاده از فرمت‌های وابسته به سیستم عامل

 

با رعایت این نکات می‌توان از بسیاری از خطاهای مرتبط با تاریخ و زمان جلوگیری کرد.

DateTime دارای متدهای متنوعی برای تغییر تاریخ است.

  • افزودن روز

DateTime.Now.AddDays(10)

 

  • کم کردن روز

 

DateTime.Now.AddDays(-5)

 

  • افزودن ماه

 

DateTime.Now.AddMonths(2)

 

  • افزودن سال

 

DateTime.Now.AddYears(1)

 

  • افزودن ساعت

 

DateTime.Now.AddHours(5)

 

  • افزودن دقیقه

 

DateTime.Now.AddMinutes(30)

 

این متدها شیء اصلی را تغییر نمی‌دهند بلکه یک DateTime جدید برمی‌گردانند.




خطاهای رایج هنگام کار با DateTime در سی شارپ



استفاده از TimeSpan در سی شارپ

TimeSpan نشان‌دهنده یک بازه زمانی است.

 

TimeSpan duration =

new TimeSpan(2,30,0);

 

خروجی

 

02:30:00

 

همچنین

 

DateTime.Now + duration

 

یا

 

DateTime.Now-duration

 

کاملاً امکان‌پذیر است.

 

DateTime و پایگاه داده

در SQL Server معمولاً ستون‌های زیر استفاده می‌شوند.

  • date
  • datetime
  • datetime2
  • smalldatetime

در EF Core یا ADO.NET معمولاً نگاشت آن‌ها به DateTime انجام می‌شود.

 

نمونه:

 

public DateTime CreatedAt { get; set; }

 

بهتر است زمان ثبت اطلاعات با UTC ذخیره شود.

 

CreatedAt = DateTime.UtcNow;



DateTimeKind چیست؟

هر DateTime دارای یک ویژگی به نام Kind است.

سه مقدار اصلی:

 

  • Utc
  • Local
  • Unspecified

 

مثال

 

DateTime.Now.Kind

 

خروجی

 

Local

 

و

 

DateTime.UtcNow.Kind

 

خروجی

 

Utc

 

این ویژگی هنگام تبدیل زمان بین مناطق زمانی اهمیت زیادی دارد.

 

تبدیل زمان محلی و UTC

  • تبدیل به UTC

 

DateTime.Now.ToUniversalTime();

 

  • تبدیل به Local

 

utcDate.ToLocalTime();

 

در پروژه‌های بین‌المللی همیشه توصیه می‌شود داده‌ها با UTC ذخیره و هنگام نمایش به زمان محلی کاربر تبدیل شوند.

 

 

بهترین روش‌ کار با datetime در سی‌شارپ

برای استفاده بهینه از DateTime این توصیه‌ها را در نظر بگیرید:

  • برای ذخیره اطلاعات زمانی در پایگاه داده از DateTime.UtcNow استفاده کنید.
  • برای دریافت ورودی کاربران از DateTime.TryParse یا TryParseExact بهره ببرید تا از بروز خطا جلوگیری شود.
  • از فرمت‌های استاندارد مانند ISO 8601 (yyyy-MM-ddTHH:mm:ss) برای تبادل داده بین سیستم‌ها استفاده کنید.
  • برای محاسبه اختلاف زمان از TimeSpan استفاده کنید و از محاسبات دستی بر اساس روز و ساعت خودداری کنید.
  • در برنامه‌های چندمنطقه‌ای (Multi-Time Zone)، زمان را به UTC ذخیره و هنگام نمایش به زمان محلی کاربر تبدیل کنید.



بهترین روش‌ کار با datetime در سی‌شارپ

جمع‌بندی

DateTime یکی از مهم‌ترین ساختارهای زبان #C برای مدیریت تاریخ و زمان است و تقریباً در تمام پروژه‌های نرم‌افزاری کاربرد دارد.
با استفاده از آن می‌توانید تاریخ و زمان جاری را دریافت کنید، تاریخ‌های دلخواه بسازید، آن‌ها را قالب‌بندی کنید، اختلاف بین دو تاریخ را محاسبه کرده و عملیات مختلفی مانند افزودن یا کم کردن روز، ماه و سال را انجام دهید.

آشنایی با مفاهیمی مانند TimeSpan، DateTimeKind، زمان جهانی (UTC)، متدهای Parse و TryParse و اصول صحیح ذخیره و نمایش تاریخ، به شما کمک می‌کند برنامه‌هایی دقیق‌تر، قابل اعتمادتر و سازگار با کاربران در مناطق زمانی مختلف توسعه دهید.
تسلط بر این ابزار نه‌تنها کیفیت کدنویسی را افزایش می‌دهد، بلکه از بسیاری از خطاهای رایج مرتبط با تاریخ و زمان در پروژه‌های واقعی جلوگیری خواهد کرد.

محصولات مرتبط

کاربران ما

شما هم نظرتون با ما دریاره “کار با datetime در سی‌شارپ” اشتراک بزارید

برای ارسال نظر لطفا ورود یا ثبت نام کنید

منو