دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۴
  • مهر

جلسه ۱۴ : تاریخ و زمان در جاوا

  • دسته‌بندی‌ها :
جلسه ۱۴ : تاریخ و زمان در جاوا
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرنو کاربرانی که دوره کامل آموزش برنامه نویسی جاوا را دنبال می کنند. در اغلب برنامه ها و توسعه ها ی نرم افزاری، نیاز است که از تمام یا بخشی از نمایش جاری تاریخ و ساعت سیستم استفاده کنید. تاریخ و ساعت جاری سیستم نه تنها برای نمایش در برنامه، بلکه در استفاده های گسترده ی زیادی دیگری از جمله ذخیره ی زمان ورود داده ها ،تاریخ و زمان رزرو و… کاربرد دارد. از این رو ما مباحث این آموزش را به آشنایی با  تاریخ و زمان در جاوا و کاراکترهای تبدیل ساعت و تاریخ  اختصاص داده ایم.

      آشنایی با تاریخ و زمان در جاوا

      در ادامه به منظور آشنایی با  تاریخ و زمان در جاوا شما را با چگونگی دستکاری تاریخ و ساعت فعلی و … آشنا می کنیم.

      کلاس Date موجود در بسته java.util تاریخ و زمان فعلی سیستم را محاسبه می کند.

      کلاس Date دو ساختار را پشتیبانی می کند که در جدول زیر نشان داده شده است:

      ردیفساختار و توضیحات مربوطه
      ۱Date( )

      این ساختار شیء را با تاریخ و زمان فعلی راه اندازی می کند.

      ۲Date(long millisec)

      این ساختار یک تاریخ را بر اساس شروع از نیمه شب ۱ ژانویه ۱۹۷۰ محاسبه می کند.

      جدول زیر شامل متدهای کلاس date می باشد:

      ردیفمتد و توضیحات
      ۱boolean after(Date date)

      اگر عنصر Data invocation حاوی تاریخ جاری باشد TRUE و در غیر این صورت FALSE است.

      ۲boolean before(Date date)

      اگر عنصر Data invocation حاوی تاریخ جاری باشد TRUE و در غیر این صورت FALSE است.

      ۳Object clone( )

      تکرار شیء تاریخ

      ۴int compareTo(Date date)

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

      ۵int compareTo(Object obj)

      اگر object از کلاس Date باشد، مشابه با comparTo (Date) عمل می کند.

      ۶boolean equals(Object date)

      اگر تاریخ فعلی با تاریخ مشخص شده برابر باشند TRUE و در غیر این صورت FALSE را بر می گرداند.

       

      ۷long getTime( )

      تعداد از میلی ثانیه که از اول ژانویه ۱۹۷۰ سپری شده است را برمی گرداند.

      ۸int hashCode( )

      یک کد هش را برای شیء فراخوانی بازمی گرداند.

      ۹void setTime(long time)

      زمان را از نیمه شب اول ژانویه ۱۹۷۰ محاسبه می کند.

      ۱۰String toString( )

      شیء تاریخ را به نوع رشته ای تبدیل می کند.

      دریافت تاریخ و ساعت جاری سیستم در جاوا

      یک متد بسیار آسان برای دریافت تاریخ و زمان فعلی در جاوا ارائه شده است.

      شما می توانید از یک شی ساده Data با متد ()toString برای چاپ تاریخ و زمان فعلی به صورت زیر استفاده کنید:

      مثال:

      مثال : 

      نتیجه ی اجرای کد فوق بصورت زیر خواهد بود:

      مثال : 

      مقایسه تاریخ

      در زیر سه روش برای مقایسه دو تاریخ وجود دارد:

      • شما می توانید از ()getTime برای به دست آوردن تعداد میلی ثانیه که از نیمه شب، ژانویه ۱، ۱۹۷۰، سپری شده است استفاده کرده و سپس این دو ارزش را مقایسه کنید.
      • شما می توانید از متدهای ()before() ، after و ()equals استفاده کنید.
      • شما می توانید از متد ()compareTo برای مقایسه دو تاریخ استفاده کنید.

      استفاده از کلاس SimpleDateFormat برای تعیین قالب تاریخ

      SimpleDateFormat یک کلاس برای قالب بندی تاریخ تجزیه که حساس به زبان است.

      SimpleDateFormat به شما اجازه می دهد از الگوهای مختلف برای نمایش تاریخ و ساعت استفاده کنید.

      مثال:

      مثال : 

      خروجی کد فوق بصورت زیر خواهد بود:

      مثال : 

      کدهای قالب بندی ساده ی تاریخ

      برای تعیین فرمت نمایش تاریخ می توانیم از کاراکترهای خاصی به شرح جدول زیر استفاده کنیم:

      کاراکترتوضیحاتمثال
      GEra designatorAD
      yYear in four digits۲۰۰۱
      MMonth in yearJuly or 07
      dDay in month۱۰
      hHour in A.M./P.M. (1~12)۱۲
      HHour in day (0~23)۲۲
      mMinute in hour۳۰
      sSecond in minute۵۵
      SMillisecond۲۳۴
      EDay in weekTuesday
      DDay in year۳۶۰
      FDay of week in month۲ (second Wed. in July)
      wWeek in year۴۰
      WWeek in month۱
      aA.M./P.M. markerPM
      kHour in day (1~24)۲۴
      KHour in A.M./P.M. (0~11)۱۰
      zTime zoneEastern Standard Time
      Escape for textDelimiter
      Single quote`

      قالب بندی تاریخ با استفاده از printf

      فرمت تاریخ و زمان را می توان به راحتی با استفاده از متد printf انجام داد.

      مثال:

      مثال : 

      نتیجه ی اجرای کد فوق به صورت زیر خواهد بود:

      مثال : 

      همچنین می توانید با استفاده از عملگر % و $ بصورت زیر هر بخش تاریخ را بصورت جداگانه قالب بندی کنید:

      مثال:

      مثال : 

      نتیجه ی اجرای کد فوق بصوتر زیر خواهد بود:

      مثال : 

      همچنین می توانید از <flag> استفاده کنید.

      مثال:

      مثال : 

      نتیجه ی اجرای کد فوق بصورت زیر خواهد بود:

      مثال : 

      کاراکترهای تبدیل ساعت و تاریخ

      CharacterDescriptionExample
      cComplete date and timeMon May 04 09:51:52 CDT 2009
      FISO 8601 date۲۰۰۴-۰۲-۰۹
      DU.S. formatted date (month/day/year)۰۲/۰۹/۲۰۰۴
      T۲۴-hour time۱۸:۰۵:۱۹
      r۱۲-hour time۰۶:۰۵:۱۹ pm
      R۲۴-hour time, no seconds۱۸:۰۵
      YFour-digit year (with leading zeroes)۲۰۰۴
      yLast two digits of the year (with leading zeroes)۰۴
      CFirst two digits of the year (with leading zeroes)۲۰
      BFull month nameFebruary
      bAbbreviated month nameFeb
      mTwo-digit month (with leading zeroes)۰۲
      dTwo-digit day (with leading zeroes)۰۳
      eTwo-digit day (without leading zeroes)۹
      AFull weekday nameMonday
      aAbbreviated weekday nameMon
      jThree-digit day of year (with leading zeroes)۰۶۹
      HTwo-digit hour (with leading zeroes), between 00 and 23۱۸
      kTwo-digit hour (without leading zeroes), between 0 and 23۱۸
      ITwo-digit hour (with leading zeroes), between 01 and 12۰۶
      lTwo-digit hour (without leading zeroes), between 1 and 12۶
      MTwo-digit minutes (with leading zeroes)۰۵
      STwo-digit seconds (with leading zeroes)۱۹
      LThree-digit milliseconds (with leading zeroes)۰۴۷
      NNine-digit nanoseconds (with leading zeroes)۰۴۷۰۰۰۰۰۰
      PUppercase morning or afternoon markerPM
      pLowercase morning or afternoon markerpm
      zRFC 822 numeric offset from GMT-۰۸۰۰
      ZTime zonePST
      sSeconds since 1970-01-01 00:00:00 GMT۱۰۷۸۸۸۴۳۱۹
      QMilliseconds since 1970-01-01 00:00:00 GMT۱۰۷۸۸۸۴۳۱۹۰۴۷

      Character Conversion Date و Time کلاس های مفید دیگر مربوط به تاریخ و زمان هستند.

      تجزیه رشته ها به تاریخ

      کلاس SimpleDateFormat دارای برخی از متدهای اضافی، به ویژه ()parse است.

      متد ()parse تلاش می کند یک رشته را بر اساس فرمت ذخیره شده در شیء SimpleDateFormat تجزیه کند.

      مثال:

      مثال : 

      نتیجه ی اجرای کد فوق در جاوا به شرح زیر است:

      مثال : 

      ایجاد یک دوره ی وقفه

      شما می توانید یک وقفه ی موقت در ساعت جاری ایجاد کنید.

      مثال- ایجاد یک وقفه ی ۳ ثانیه ای :

      مثال : 

      نتیجه ی کد فوق بصورت زیر خواهد بود:

      مثال : 

      اندازه گیری گذشت زمان

      گاهی اوقات ممکن است نیاز به اندازه گیری نقطه در زمان در میلی ثانیه باشد.

      مثال:

      مثال : 

      خروجی :

      مثال : 

      کلاس GregorianCalendar

      کلاس GregorianCalendar یک نمونه از تقویم بنیادی است.

      متد ( )getInstance یک تقویم GregorianCalendar را با تاریخ و زمان فعلی در منقطه ی پیش فرض محلی تنظیم می کند.

      جدول زیر شامل ساختارهای شیء GregorianCalendar می باشد:

      ردیفساختار و توضیحات
      ۱GregorianCalendar()

      GregorianCalendar تقویم را با زمان جاری سیستم در محل مورد نظر ایجاد می کند.

      ۲GregorianCalendar(int year, int month, int date)

      ایجاد یک GregorianCalendar با تاریخ داده شده تنظیم شده در منطقه زمانی پیش فرض.

      ۳GregorianCalendar(int year, int month, int date, int hour, int minute)

      یک GregorianCalendar با تاریخ و زمان مشخص شده برای منطقه زمانی پیش فرض محلی ایجاد می کند.

      ۴GregorianCalendar(int year, int month, int date, int hour, int minute, int second)

      یک GregorianCalendar با تاریخ و زمان مشخص شده برای منطقه زمانی پیش فرض محلی ایجاد می کند.

      ۵GregorianCalendar(Locale aLocale)

      یک GregorianCalendar را بر اساس زمان فعلی در منطقه زمانی پیش فرض محلی داده شده ایجاد می کند.

      ۶GregorianCalendar(TimeZone zone)

      یک GregorianCalendar را بر اساس زمان فعلی در منطقه زمانی داده شده با پیش فرض محلی ایجاد می کند.

      ۷GregorianCalendar(TimeZone zone, Locale aLocale)

      یک GregorianCalendar را بر اساس زمان فعلی در منطقه زمانی داده شده با زبان داده شده ایجاد می کند.

      متدهای GregorianCalendar

      جدول زیر شامل لیستی از چند متد پشتیبانی مفید ارائه شده توسط کلاس GregorianCalendar است:

      ردیفمتد و توضیحات
      ۱void add(int field, int amount)

      مقدار مشخص شده (امضا شده) را به فیلد زمان داده شده اضافه می کند،

      ۲protected void computeFields()

      تبدیل UTC به عنوان میلی ثانیه.

      ۳protected void computeTime()

      لغو تقویم تبدیل مقادیر فیلد زمان به UTC به صورت میلی ثانیه است.

      ۴boolean equals(Object obj)

      این GregorianCalendar را به مرجع شی مقایسه می کند.

      ۵int get(int field)

      ارزش یک فیلد زمانی را دریافت می کند.

      ۶int getActualMaximum(int field)

      حداکثر مقدار فیلد ورودی را با توجه به تاریخ فعلی می دهد.

      ۷int getActualMinimum(int field)

      حداقل مقداری که  فیلد ورودی می تواند با توجه به تاریخ فعلی را نشان دهد.

      ۸int getGreatestMinimum(int field)

      اگر متغیر باشد، بالاترین مقدار حداقل برای فیلد داده را نشان می دهد.

      ۹Date getGregorianChange()

      تاریخ تغییر تقویم را می گیرد.

      ۱۰int getLeastMaximum(int field)

      حداقل مقداری که حداکثر فیلد است را نشان می دهد.

      ۱۱int getMaximum(int field)

      حداکثر مقدار یک فیلد را نشان می دهد.

       

      ۱۲Date getTime()

      زمان جاری سیستم را برمی گرداند.

      ۱۳long getTimeInMillis()

      زمان فعلی تقویم را بصورت طولانی نمایش می دهد.

      ۱۴TimeZone getTimeZone()

      منطقه زمانی فعلی را می دهد.

      ۱۵int getMinimum(int field)

      حداقل مقدار برای فیلد داده را برمی گرداند.

      ۱۶int hashCode()

      هش کد را لغو می کند

      ۱۷boolean isLeapYear(int year)

      تعیین می کند که آیا سال داده شده سال کبیسه است یا خیر.

      ۱۸void roll(int field, boolean up)

      اضافه کردن یا کم کردن (بالا / پایین) یک واحد در زمان داده شده را انجام می دهد.

      ۱۹void set(int field, int value)

      فیلد زمان را با مقدار داده شده تنظیم می کند.

      ۲۰void set(int year, int month, int date)

      مقادیر برای فیلدها سال، ماه و تاریخ را تنظیم می کند.

      ۲۱void set(int year, int month, int date, int hour, int minute)

      مقادیر را برای سال، ماه، تاریخ، ساعت و دقیقه تنظیم می کند.

      ۲۲void set(int year, int month, int date, int hour, int minute, int second)

      مقادیر را برای سال، ماه، تاریخ، ساعت و دقیقه تنظیم می کند.

      ۲۳void setGregorianChange(Date date)

      تاریخ تقویم GregorianCalendar را تغییر می دهد.

      ۲۴void setTime(Date date)

      تاریخ فعلی تقویم را با تاریخ داده شده تنظیم می کند.

      ۲۵void setTimeInMillis(long millis)

      زمان فعلی تقویم را از مقدار طولانی داده شده تنظیم می کند.

      ۲۶void setTimeZone(TimeZone value)

      منطقه زمانی را با مقدار منطقه زمان داده شده تنظیم می کند.

      ۲۷String toString()

      نمایش رشته ای تقویم را بازمی گرداند

      مثال:

      مثال : 

      خروجی کد فوق بصورت زیر خواهد بود:

      مثال : 

      کلام آخر

      بسیاری از زبان های برنامه نویسی امکان دسترسی به تاریخ و ساعت فعلی سیستم و دستکاری آن را در کد برنامه برای برنامه نویسان فراهم می کند. جاوا نیز به عنوان یک زبان برنامه نویسی محبوب از این قاعده مستثنی نیست. از این رو مباحث این بخش را به آشنایی با تاریخ و زمان در جاوا اختصاص دادیم.

      QR:  جلسه ۱۴ : تاریخ و زمان در جاوا
      به اشتراک بگذارید