date در تمامی سیستم عامل های یونیکسی و توزیع های لینوکسی برای نمایش و تغییر زمان و تاریخ استفاده می شوند. در ساده ترین حالت استفاده اجرای تنهای دستور date زمان و تاریخ فعلی را نمایش می دهد. نمایش تاریخ و زمان فعلی نیازی به دسترسی root ندارد ولی تغییر تاریخ نیاز به دسترسی root دارد.
یکی از مواردی که در تنظیم زمان و تاریخ میان سیستم ها مهم است، در محیط هایی است که کلاستری از کامپیوترها وجود دارند. در کلاسترها باید به منظور عملکرد صحیح میان کامپیوترها، ساعت میان آنها یکسان باشد.
date # OUTPUT Tue Oct 4 02:31:17 IRST 2016
دستور بالا تاریخ (چهار اکتبر ۲۰۱۶) ، ساعت و سال فعلی را نشان می دهد. در صورتی که می خواهید خروجی دستور date را فرمت کنید باید از پارامترهای کنترلی زیر استفاده کنید.
FORMAT controls the output. Interpreted sequences are: %% a literal % %a locale's abbreviated weekday name (e.g., Sun) %A locale's full weekday name (e.g., Sunday) %b locale's abbreviated month name (e.g., Jan) %B locale's full month name (e.g., January) %c locale's date and time (e.g., Thu Mar 3 23:05:25 2005) %C century; like %Y, except omit last two digits (e.g., 20) %d day of month (e.g, 01) %D date; same as %m/%d/%y %e day of month, space padded; same as %_d %F full date; same as %Y-%m-%d %g last two digits of year of ISO week number (see %G) %G year of ISO week number (see %V); normally useful only with %V %h same as %b %H hour (00..23) %I hour (01..12) %j day of year (001..366) %k hour ( 0..23) %l hour ( 1..12) %m month (01..12) %M minute (00..59) %n a newline %N nanoseconds (000000000..999999999) %p locale's equivalent of either AM or PM; blank if not known %P like %p, but lower case %r locale's 12-hour clock time (e.g., 11:11:04 PM) %R 24-hour hour and minute; same as %H:%M %s seconds since 1970-01-01 00:00:00 UTC %S second (00..60) %t a tab %T time; same as %H:%M:%S %u day of week (1..7); 1 is Monday %U week number of year, with Sunday as first day of week (00..53) %V ISO week number, with Monday as first day of week (01..53) %w day of week (0..6); 0 is Sunday %W week number of year, with Monday as first day of week (00..53) %x locale's date representation (e.g., 12/31/99) %X locale's time representation (e.g., 23:13:48) %y last two digits of year (00..99) %Y year %z +hhmm numeric timezone (e.g., -0400) %:z +hh:mm numeric timezone (e.g., -04:00) %::z +hh:mm:ss numeric time zone (e.g., -04:00:00) %:::z numeric time zone with : to necessary precision (e.g., -04, +05:30) %Z alphabetic time zone abbreviation (e.g., EDT)
روش کلی برای فرمت کردن خروجی به صورت زیر است.
date +FORMAT
مثال ۱ – فرمت بندی خروجی دستور date به صورت YYYY-MM-DD
date +"%Y-%m-%d"
مثال ۲ – فقط نمایش ساعت فعلی سیستم
date +"%T"
مثال ۳ – نمایش زمان و تاریخ با استفاده از یک جدا کننده (Seprator) به صورت زیر که از / به عنوان جدا کننده استفاده شده است.
date “+<Parameter><seprator><Parameter><seprator><Paramete>" date +"%Y-%m-%d" date +"[%d/%b/%Y:%k:%M:%S %z]" date +"%m-%d-%Y";
مثال ۴ – از پارامترهای a% و A% برای نمایش نام روز استفاده می کنیم با این تفاوت که A% نام کامل روز (مثلا سه شنبه) را نشان می دهد.
date “+%m-%d-%Y %A” date “+%A %m-%d-%Y”
مثال ۵ – از پارامترهای b% و B% برای نمایش نام ماه استفاده می کنیم با این تفاوت که A% نام کامل ماه (مثلا Octobr) را نشان می دهد.
date “+%m-%d-%Y %B” date “+%B %m-%d-%Y”
مثال ۶ – از پارامترهای y% و Y% برای نمایش سال استفاده می کنیم با این تفاوت که A% سال را به طور کامل (مثلا 2016) نشان می دهد.
date “+%m-%d-%y ” date “+%m-%d-%Y ”
برای تغییر زمان و تاریخ باید از سویئچ s- استفاده کنید. s- یک رشته فرمت را به عنوان ورودی می گیرد و سپس زمان و تاریخ را تغییر می دهد. برای تغییر زمان و تاریخ باید دسترسی root داشته باشید.
sudo data --set=STRING
به طور مثال از دستور زیر برای تغییر زمان و تاریخ به چهار اکتبر استفاده شده است.
sudo date -s "4 Oct 2016 14:36:30"
مثال زیر تنها زمان سیستم را به فرمت HH:MM:SS تغییر می دهد.
sudo date -s 14:36:30
مثال زیر تنها تاریخ سیستم را به فرمت YYYY-MM-DD تغییر می دهد.
sudo date -s 2016-10-04
همچنین می توان از دستور date به ترتیب برای افزایش و کاهش روزها، هفته ها، ماه ها، سال ها، ثانیه ها، دقیقه ها و ساعت ها استفاده کرد.
sudo date -s='+10 minutes' sudo date -s='-20 minutes' sudo date -s='+3 weeks' sudo date -s='-5 weeks' sudo date -s='+2 months' sudo date -s='-4 months' sudo date -s='next year' sudo date -s='last year' sudo date -s='next month' sudo date -s='last month' sudo date -s 'next day' sudo date -s 'tomorrow' sudo date -s 'last day' sudo date -s 'yesterday' sudo date -s firday'