ویژگی تصویر

تاریخ و زمان در Java

  /  Java   /  تاریخ و زمان در جاوا
بنر تبلیغاتی الف
زبان برنامه نویسی Java (جاوا)

در این بخش به بررسی تاریخ و زمان در جاوا می پردازیم، در دنیای برنامه‌نویسی، مدیریت تاریخ و زمان یکی از چالش‌های اساسی به شمار می‌آید. نیاز به ثبت زمان دقیق رویدادها، مقایسه تاریخ‌ها، محاسبه فاصله زمانی بین دو نقطه و انجام عملیات‌های دیگر روی تاریخ و زمان از جمله وظایف رایج در بسیاری از برنامه‌های نرم‌افزاری است. زبان برنامه‌نویسی Java به عنوان یکی از قدرتمندترین زبان‌های برنامه‌نویسی، ابزارهای متعددی برای مدیریت تاریخ و زمان در اختیار توسعه‌دهندگان قرار داده است.

در Java، مدیریت تاریخ و زمان ابتدا با کلاس‌های موجود در بسته‌ی java.util شروع شد، اما این کلاس‌ها به دلایلی چون پیچیدگی و مشکلات طراحی اولیه، چندان محبوب نبودند. در نسخه‌ی 8 به بعد، با معرفی کتابخانه‌ی java.time (معروف به Java Date-Time API جدید)، امکانات بسیار پیشرفته‌تر و کاربردی‌تری برای این منظور ارائه شد. این کتابخانه بهبود قابل توجهی در مدیریت تاریخ و زمان ایجاد کرده است و به استانداردهای بین‌المللی مانند ISO-8601 نیز پایبند است.

معرفی بسته‌ی java.time

بسته‌ی java.time، که در Java 8 معرفی شد، یکی از ابزارهای کلیدی برای مدیریت تاریخ و زمان است. این بسته شامل کلاس‌هایی مانند LocalDate، LocalTime، LocalDateTime، و ZonedDateTime می‌باشد که هر یک برای مقاصد خاصی طراحی شده‌اند.

1. کلاس LocalDate

کلاس LocalDate برای کار با تاریخ (بدون زمان) طراحی شده است. این کلاس شامل اطلاعاتی نظیر سال، ماه، و روز می‌باشد. به عنوان مثال:

تماشا در حالت تمام صفحه

در مثال بالا، تابع LocalDate.now() تاریخ امروز را برمی‌گرداند و با استفاده از متد of می‌توان یک تاریخ خاص ایجاد کرد.

توضیحات:
  • کلاس LocalDate به‌صورت Immutable طراحی شده است، یعنی پس از ایجاد یک شیء، نمی‌توان آن را تغییر داد.
  • این کلاس از فرمت استاندارد ISO-8601 استفاده می‌کند.

2. کلاس LocalTime

کلاس LocalTime برای مدیریت زمان (بدون تاریخ) به کار می‌رود. این کلاس شامل ساعت، دقیقه، ثانیه، و نانوثانیه است.

مثال زیر نحوه‌ی استفاده از آن را نشان می‌دهد:

تماشا در حالت تمام صفحه
توضیحات:
  • متد of امکان ایجاد زمان خاص را فراهم می‌کند.
  • با استفاده از متدهایی مانند getHour() و getMinute() می‌توان اجزای زمان را استخراج کرد.

3. کلاس LocalDateTime

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

مثال:

تماشا در حالت تمام صفحه
نکات:
  • کلاس LocalDateTime ترکیبی از قابلیت‌های LocalDate و LocalTime است.
  • برای انجام محاسبات زمانی، متدهایی نظیر plusDays() و minusHours() نیز در دسترس هستند.

4. کلاس ZonedDateTime

در برنامه‌هایی که نیاز به پشتیبانی از مناطق زمانی مختلف دارند، استفاده از ZonedDateTime ضروری است. این کلاس امکان نمایش تاریخ و زمان همراه با منطقه زمانی را فراهم می‌کند.

مثال:

تماشا در حالت تمام صفحه
توضیحات:
  • کلاس ZoneId برای تعریف مناطق زمانی مختلف به کار می‌رود.
  • مناطق زمانی استاندارد مانند UTC و GMT نیز پشتیبانی می‌شوند.

انجام محاسبات روی تاریخ و زمان

یکی از قابلیت‌های مهم بسته‌ی java.time، امکان انجام محاسبات و مقایسه تاریخ و زمان است. به عنوان مثال، می‌توان فاصله بین دو تاریخ را محاسبه کرد یا تاریخ جدیدی ایجاد نمود.

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

تماشا در حالت تمام صفحه
توضیحات:
  • کلاس Period برای محاسبات مربوط به تاریخ به کار می‌رود.
  • خروجی این کلاس می‌تواند تعداد سال‌ها، ماه‌ها و روزها را نشان دهد.

فرمت‌بندی تاریخ و زمان

برای نمایش تاریخ و زمان به صورت خاص، می‌توان از کلاس DateTimeFormatter استفاده کرد.

مثال:

تماشا در حالت تمام صفحه
نکات:
  • فرمت‌ها می‌توانند سفارشی شوند. به عنوان مثال، dd/MM/yyyy برای تاریخ‌های متداول در ایران.

کتابخانه‌ی java.time ابزاری بسیار قدرتمند برای مدیریت تاریخ و زمان در Java است که امکانات متنوعی برای ایجاد، محاسبه، و فرمت‌بندی تاریخ و زمان ارائه می‌دهد. با توجه به استانداردهای مدرن و طراحی ساده، این کتابخانه جایگزین مناسبی برای ابزارهای قدیمی‌تر در Java است. پیشنهاد می‌شود در پروژه‌های جدید خود از این ابزار استفاده کنید تا از تمامی مزایای آن بهره‌مند شوید.

منابع

آیا این مطلب برای شما مفید بود ؟

خیر
بله
موضوعات شما در انجمن: