تاریخ و زمان در جاوا
جاوا کلاس Dte موجود در بسته jv.util را ارائه داده است. این کلاس تاریخ و زمان جاری را کپسوله می کند.
کلاس Dteاز دو سازنده پشتیبانی می کند. این سازنده ها در جدول زیر نشان داده شده اند.
Sr.No.
Constructor ∓ Description
Dte( )
این سازنده شی را با با تاریخ و زمان فعلی مقدار دهی اولیه می کند.
Dte(long millisec)
این سازنده یک آرگومان می پذیرد که برابر است با تعداد میلی ثانیه که از نیمه شب، ژانویه ۱، ۱۹۷۰ سپری شده است.
در زیر متدهای کلاس Dte آورده شده است.
Metho ∓ Description
boolen fter(Dte te)
اگر فراخوانی شی Dt حاوی یک تاریخ باشد که دیرتر از تاریخی است که توسط t مشخص شده مقدار درست (true) بر می گرداند، در غیر این صورت، مقدار flse برمی گرداند
boolen before(Dte te)
اگر فراخوانی شی Dt حاوی یک تاریخ زودتر از تاریخ مشخص شده توسط t باشد، درست (true) برمی گرداند ، در غیر این صورت، مقدار flse بر می گرداند.
Object clone( )
فراخوانی شی Dt را تکرار می کند.
int compreTo(Dte te)
مقدار شی فراخوانی شده را با t مقایسه می کند. اگر مقادیر برابر باشند صفر برمی گرداند. اگر شی فراخوانی شده زودتر از t یاشد یک مقدار منفی برمی گرداند. اگر شی فراخوانی شده دیرتر از t باشد یک مقدار مثبت برمی گرداند.
int compreTo(Object obj)
اگر obj از کلاس Dte باشد عینا compreTo(Dte) عمل می کند. در غیر این صورت، یک ClssCstException می اندازد.
boolen equls(Object te)
اگر فراخوانی شی Dte شامل همان زمان و تاریخی باشد که توسط te مشخص شده است true برمی گرداند ، در غیر این صورت، مقدار flse بر می گرداند.
long getTime( )
تعداد میلی ثانیه که از ۱ ژانویه ۱۹۷۰ سپری شده است را بر می گرداند.
int hshCoe( )
یک کد هش برای شی فراخوانی بر می گرداند.
voi setTime(long time)
زمان و تاریخ که توسط زمان مشخص شده اند را تنظیم می کند، که زمان سپری شده به میلی ثانیه از نیمه شب، اول ژانویه ۱۹۷۰ را نشان می دهد.
String toString( )
شی Dte فراخوانی شده را به رشته تبدیل می کند و نتیجه را برمی گرداند.
بدست آوردن Dte و Time فعلی در جاوا :
بدست آوردن تاریخ و زمان فعلی در < href="http://www.evelopzoom.com/%D8%AC%D8%A7%D9%88%D8%A7/">جاوا> بسیار آسان است. شما می توانید یک شی Dte ساده با متد ()toString برای چاپ تاریخ و زمان فعلی به شرح زیر ا استفاده کنید.
مثال:
import jv.util.Dte; public clss DteDemo public sttic voi min(String rgs) // Instntite Dte object Dte te = new Dte(); // isply time n te using toString() System.out.println(te.toString());
کد فوق نتیجه ی زیر را تولید خواهد کرد:
خروجی:
مقایسه تاریخ در جاوا
در زیر سه روش برای مقایسه دو تاریخ آورده شده است:
- شما می توانید از ()getTime برای به دست آوردن تعداد میلی ثانیه که از نیمه شب، اول ژانویه ، ۱۹۷۰ سپری شده برای هر دو شی استفاده کنید، و سپس این دو مقدار را مقایسه کنید.
- شما می توانید از متدهای before( ), fter( ) و equls( ) استفاده کنید. برای مثال چون ۱۲ام ماه قبل از ۱۸ می آید، بنابراین،
new Dte(99, 2, 2).before(new Dte (99, 2, 8)) مقدار true برمی گرداند. - شما می توانید از متد ()compreTo استفاده کنید، که توسط رابط Comprble تعریف و بوسیله Dt اجرا شده می شود.
فرمت یا قالب بندی تاریخ در جاوا با استفاده از SimpleDteFormt
SimpleDteFormt یک کلاس برای قالب بندی و تجزیه تاریخ ها به یک شیوه حساس محلی است. SimpleDteFormt به شما اجازه می دهد تا شما با انتخاب هر الگوهای تعریف شده توسط کاربر برای te-time formttingشروع کنید.
مثال:
import jv.util.*; import jv.text.*; public clss DteDemo public sttic voi min(String rgs) Dte Now = new Dte( ); SimpleDteFormt ft = new SimpleDteFormt ("E yyyy.MM. 't' hh:mm:ss zzz"); System.out.println("Current Dte: " + ft.formt(Now));
کد فوق نتیجه ی زیر را تولید خواهد کرد:
خروجی:
کدهای ساده فرمت DteFormt
برای مشخص کردن فرمت زمان، از یک رشته الگوی زمان استفاده کنید. در این الگو، تمام حروف ASCII به عنوان حروف الگو رزرو شده اند، که مانند زیر تعریف شده اند:
Chrcter
Description
Exmple
G
Er esigntor
AD
y
Yer in four igits
۲۰۰۱
M
Month in yer
July or 07
Dy in month
۱۰
h
Hour in A.M./P.M. (~2)
۱۲
H
Hour in y (0~23)
۲۲
m
Minute in hour
۳۰
s
Secon in minute
۵۵
S
Millisecon
۲۳۴
E
Dy in week
Tuesy
D
Dy in yer
۳۶۰
F
Dy of week in month
۲ (secon We. in July)
w
Week in yer
۴۰
W
Week in month
۱
A.M./P.M. mrker
PM
k
Hour in y (~24)
۲۴
K
Hour in A.M./P.M. (0~)
۱۰
z
Time zone
Estern Stnr Time
̺
Escpe for text
Delimiter
“
Single quote
`
قالب بندی تاریخ با استفاده از تابع () printf
قالب بندی تاریخ و زمان می تواند به راحتی با استفاده از متد () printf انجام شود. شما می توانید از فرمت دو حرفی استفاده کنید. این فرمت با t شروع می شود و با یکی از حروف ارائه شده در جدول زیر خاتمه می یابد به عنوان مثال:
import jv.util.Dte; public clss DteDemo public sttic voi min(String rgs) // Instntite Dte object Dte te = new Dte(); // isply time n te using toString() String str = String.formt("Current Dte/Time : %tc", te ); System.out.printf(str);
کد فوق نتیجه زیر را تولید خواهد کرد:
این شما مجبور باشید برای فرمت هر بخش تاریخ را چندیین بار ارائه دهید ، ممکن است کمی احمقانه بنظر برسد. به همین دلیل، یک رشته فرمت می تواند ایندکس مربوط به آرگومان را نشان دهد تا قالب بندی شود.
ایندکس باید بلافاصله بعد از %بیاید و باید با علامت $ پایان داده شود.
import jv.util.Dte; public clss DteDemo public sttic voi min(String rgs) // Instntite Dte object Dte te = new Dte(); // isply time n te using toString() System.out.printf("%$s %2$tB %2$t, %2$tY", "Due te:", te);
کد فوق خروجی زیر را تولید خواهد کرد:
همچنین، شما می توانید از flg استفاده کنید. این نشان می دهد که همان آرگومان در فرمت تعیین شده قبل باید دوباره استفاده شود.
مثال:
import jv.util.Dte; public clss DteDemo public sttic voi min(String rgs) // Instntite Dte object Dte te = new Dte(); // isply formtte te System.out.printf("%s %tB %∓mp;mp;lt;te, %∓mp;mp;lt;tY", "Due te:", te);
کد فوق نتیجه زیر را تولید خواهد کرد:
خروجی
کاراکترهای تبدیل تاریخ و زمان در جاوا (Dte n Time)
کلاس های مفید دیگری مربوط به تاریخ و زمان وجود دارد. برای اطلاعات بیشتر، شما می توانید به مستندات استاندارد جاوا مراجعه کنید.
تجزیه رشته ها به تاریخ ها در جاوا
کلاس SimpleDteFormt چند متد اضافی، به ویژه prse را دارد، که تلاش می کند یک رشته را با توجه به فرمت های ذخیره شده در شی SimpleDteFormt داده شده، تجزیه کند.
مثال:
import jv.util.*; import jv.text.*; public clss DteDemo public sttic voi min(String rgs) SimpleDteFormt ft = new SimpleDteFormt ("yyyy-MM-"); String input = rgs.length == 0 ? "88--" : rgs[0]; System.out.print(input + " Prses s "); Dte t; try t = ft.prse(input); System.out.println(t); ctch (PrseException e) System.out.println("Unprseble using " + ft);
اجرا برنامه فوق نتیجه زیر را تولید خواهد کرد:
خروجی
خواب برای مدتی در جاوا
شما می توانید برای هر دوره از زمان از یک میلی ثانیه تا طول عمر کامپیوتر خود بخوابید. به عنوان مثال، برنامه زیر برای ۳ ثانیه به خواب می رود.
مثال:
import jv.util.*; public clss SleepDemo public sttic voi min(String rgs) try System.out.println(new Dte( ) + "n"); Thre.sleep(5*60*0); System.out.println(new Dte( ) + "n"); ctch (Exception e) System.out.println("Got n exception!");
برنامه فوق نتیجه زیر را تولید خواهد کرد:
خروجی
Sun My 03 8:04:5 GMT 2009
اندازه گیری زمان سپری شده در جاوا
گاهی اوقات، ممکن است نیاز به اندازه گیری یک نقطه زمان به میلی ثانیه داشته باشید. بنابراین اجازه دهید مثال بالا را یک بار دیگر باز نویسی کنیم.
مثال:
import jv.util.*; public clss DiffDemo public sttic voi min(String rgs) try long strt = System.currentTimeMillis( ); System.out.println(new Dte( ) + "n"); Thre.sleep(5*60*0); System.out.println(new Dte( ) + "n"); long en = System.currentTimeMillis( ); long iff = en - strt; System.out.println("Difference is : " + iff); ctch (Exception e) System.out.println("Got n exception!");
برنامه فوق خروجی زیر را تولید خواهد کرد:
خروجی
Sun My 03 8:6:57 GMT 2009
Difference is : 5993
کلاس GregorinClenr (تقویم میلادی)
GregorinClenr یک پیاده سازی از کلاس Clenr است که تقویم میلادی نرمال که باذ آن آشنا هستید را پیاده سازی می کند. ما در این آموزش کلاس Clenr بررسی نمی کنیم، شما می توانید در این مورد به مستندات استاندارد جاوا مراجعه کنید.
متد ()getInstnce از Clenr یک GregorinClenr را باز می گرداند که با تاریخ و زمان فعلی در محل و منطقه زمانی پیشفرض مقداردهی اولیه شده است. GregorinClenr دو فیلد AD و BC را تعریف می کند. این دو پارامتر نشان دهنده دو دوره تعریف شده توسط تقویم میلادی است.
همچنین چندین سازنده برای شی GregorinClenr وجود دارد.
Sr.No.
Metho ∓ Description
voi (int fiel, int mount)
بر اساس قوانین تقویم مقدار مشخص از زمان را به فیلد زمان داده شده می افزاید.
protecte voi computeFiels()
UTC در میلی ثانیه را به مقادیر فیلد زمان تبدیل می کند.
protecte voi computeTime()
تبدیل مقدار فیلد زمان تقویم به به UTC در میلی ثانیه را لغو می کند.
boolen equls(Object obj)
GregorinClenr را با یک شی مرجع مقایسه می کند.
int get(int fiel)
یک مقدار برای فیلد زمان داده شده می دهد.
int getActulMximum(int fiel)
حداکثر مقدار که این فیلد می تواند داشته باشد، با توجه به تاریخ جاری را برمی گرداند.
int getActulMinimum(int fiel)
حداقل مقدار که این فیلد می تواند داشته باشد، با توجه به تاریخ جاری را برمی گرداند.
int getGretestMinimum(int fiel)
بیشترین مقدار minimum را برای فیلد داده شده اگر متفاوت باشد بر می گرداند.
Dte getGregorinChnge()
تاریخ تغییر تقویم میلادی را می دهد.
int getLestMximum(int fiel)
کمترین مقدار mximum را برای فیلد داده شده بر می گرداند اگر متفاوت باشد.
int getMximum(int fiel)
بیشترین مقدار برای فیلد داده شده را بر می گرداند.
Dte getTime()
زمان جاری این تقویم را به دست می آورد.
long getTimeInMillis()
زمان فعلی این تقویم به عنوان long می شود.
TimeZone getTimeZone()
منطقه زمانی را بدست می آورد.
int getMinimum(int fiel)
کمترین مقدار برای فیلد داده شده را برمی گرداند.
int hshCoe()
hshCoe. را لغو می کند.
boolen isLepYer(int yer)
اگر سال داده شده کبیسه باشد آن را مشخص می کند.
voi roll(int fiel, boolen up)
یک واحد از زمان را به فیلد زمان ارائه شده اضافه یا کم می کند. بدون اینکه در فیلدهای بزرگتر تغییری ایجاد شود.
voi set(int fiel, int vlue)
فیلد زمان را با مقدار داده شده تنظیم می کند.
voi set(int yer, int month, int te)
مقادیر را برای فیلدهای yer و monthو te تنظیم می کند.
voi set(int yer, int month, int te, int hour, int minute)
مقادیری برای فیلدهای yer، month، te، hour و minute تنظیم می کند.
voi set(int yer, int month, int te, int hour, int minute, int secon)
مقادیری برای فیلدهای yer، month، te، hour ، minute و secon تنظیم می کند.
voi setGregorinChnge(Dte te)
تاریخ تغییر GregorinClenr را تنظیم می کند.
voi setTime(Dte te)
زمان فعلی تقویم را از مقدار تاریخ داده شده تنظیم می کند.
voi setTimeInMillis(long millis)
زمان فعلی تقویم را از مقدار long داده شده تنظیم می کند.
voi setTimeZone(TimeZone vlue)
منطقه زمانی (TimeZone) را به مقدار منطقه زمانی داده شده تنظیم می کند.
String toString()
نمایش رشته ای از این تقویم را برمی گرداند.
مثال:
import jv.util.*; public clss GregorinClenrDemo public sttic voi min(String rgs) String months = "Jn", "Feb", "Mr", "Apr", "My", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"; int yer; // Crete Gregorin clenr initilize // with the current te n time in the // efult locle n timezone. GregorinClenr gclenr = new GregorinClenr(); // Disply current time n te informtion. System.out.print("Dte: "); System.out.print(months[gclenr.get(Clenr.MONTH)]); System.out.print(" " + gclenr.get(Clenr.DATE) + " "); System.out.println(yer = gclenr.get(Clenr.YEAR)); System.out.print("Time: "); System.out.print(gclenr.get(Clenr.HOUR) + ":"); System.out.print(gclenr.get(Clenr.MINUTE) + ":"); System.out.println(gclenr.get(Clenr.SECOND)); // Test if the current yer is lep yer if(gclenr.isLepYer(yer)) System.out.println("The current yer is lep yer"); else System.out.println("The current yer is not lep yer");
برنامه بالا خروجی زیر را تولید خواهد کرد:
خروجی
Dte: Apr 22 2009
Time: :25:27
The current yer is not lep yer
برای مشاهده لیست کاملی از ثابت های در دسترس کلاس Clenr می توانید به مستندات استاندارد جاوا مراجعه کنید.
< href="http://www.evelopzoom.com/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AC%D8%A7%D9%88%D8%A7-%D9%82%D8%B3%D9%85%D8%AA-%DB%8C%D8%A7%D8%B2%D8%AF%D9%87%D9%85/">منبع >
برای برنامه نویسی سایت کدام زبان رو پیشنهاد می کنید
سلام ، php.