Դաս 15.1։ Java – Date and Time

0

Date ֆորմատավորում printf-ի միջոցով

Ամսաթվի և ժամի ստեղծումը կարել է հեշտությամբ իրականացնել printf մեթոդով: Դուք օգտագործում եք երկու տառանի ձեւաչափ, որը սկվում է t-ով և վերջանում ստորև ներկայացված տառերից որևէ մեկով, ինչպես ցույց է տրված հետևյալ կոդում։

Օրինակ՝

import java.util.Date;

public class DateDemo {

 

public static void main(String args[]) {

// Instantiate a Date object

Date date = new Date();

 

// display time and date

String str = String.format(“Current Date/Time : %tc”, date );

 

System.out.printf(str);

}

}

 

Արդյունքը՝

Current Date/Time : Sat Dec 15 16:37:57 MST 2012

 

Որպեսզի ստիպված չլինեք ամեն անգամ նշել ժամանակը, format string-ը կարող է ցույց տալ ձևակերպված ինդեքսի argument-ը:

Ինդեքսը պետք է անմիջապես հետևի % և այն պետք է դադարեցվի $-ով:

Օրինակ՝

import java.util.Date;

public class DateDemo {

public static void main(String args[]) {

// Instantiate a Date object

Date date = new Date();

// display time and date

System.out.printf(“%1$s %2$tB %2$td, %2$tY”, “Due date:”, date);

}

}

 

Արդյունքը՝

Due date: February 09, 2004

 

Այլապես կարող եք օգտագործել < flag: Այն ցույց է տալիս, որ նույն  argument-ը պետք է կրկին օգտագործվի։

Օրինակ՝

import java.util.Date;

public class DateDemo {

public static void main(String args[]) {

// Instantiate a Date object

Date date = new Date();

// display formatted date
System.out.printf(“%s %tB %<te, %<tY”, “Due date:”, date);

}

}

Արդյունքը՝

Due date: February 09, 2004

 

Date and Time Conversion Characters

Character Description Example
c Complete date and time Mon May 04 09:51:52 CDT 2009
F ISO 8601 date 2004-02-09
D U.S. formatted date (month/day/year) 02/09/2004
T 24-hour time 18:05:19
r 12-hour time 06:05:19 pm
R 24-hour time, no seconds 18:05
Y Four-digit year (with leading zeroes) 2004
y Last two digits of the year (with leading zeroes) 04
C First two digits of the year (with leading zeroes) 20
B Full month name February
b Abbreviated month name Feb
m Two-digit month (with leading zeroes) 02
d Two-digit day (with leading zeroes) 03
e Two-digit day (without leading zeroes) 9
A Full weekday name Monday
a Abbreviated weekday name Mon
j Three-digit day of year (with leading zeroes) 069
H Two-digit hour (with leading zeroes), between 00 and 23 18
k Two-digit hour (without leading zeroes), between 0 and 23 18
I Two-digit hour (with leading zeroes), between 01 and 12 06
l Two-digit hour (without leading zeroes), between 1 and 12 6
M Two-digit minutes (with leading zeroes) 05
S Two-digit seconds (with leading zeroes) 19
L Three-digit milliseconds (with leading zeroes) 047
N Nine-digit nanoseconds (with leading zeroes) 047000000
P Uppercase morning or afternoon marker PM
p Lowercase morning or afternoon marker pm
z RFC 822 numeric offset from GMT -0800
Z Time zone PST
s Seconds since 1970-01-01 00:00:00 GMT 1078884319
Q Milliseconds since 1970-01-01 00:00:00 GMT 1078884319047

 

Կան նաև այլ օգտակար դասեր, որոնք վերաբերում են ամսաթվին և ժամին: Լրացուցիչ մանրամասներ կարող եք փնտրել Java Standard փաստաթղթերում։

Տողերի վերլուծում տարեթվում

SimpleDateFormat դասը ունի որոշակի լրացուցիչ մեթոդներ, մասնավորապես, parse( ) –ը, որը փորձում է վերլուծել տողը ըստ տրված ձևաչափի, որը պահվում է  SimpleDateFormat օբյեկտում։

Օրինակ՝

import java.util.*;

import java.text.*;

public class DateDemo {

public static void main(String args[]) {

SimpleDateFormat ft = new SimpleDateFormat (“yyyy-MM-dd”);

String input = args.length == 0 ? “1818-11-11″ : args[0];

System.out.print(input + ” Parses as “);

Date t;

try {

t = ft.parse(input);

System.out.println(t);

} catch (ParseException e) {

System.out.println(“Unparseable using ” + ft);

}

}

}

Արդյունքը՝

1818-11-11 Parses as Wed Nov 11 00:00:00 EST 1818

 

Sleeping for a While

Դուք կարող եք քնել ցանկացած ժամանակահատվածում մեկ միլիավարկյանից մինչև ձեր համակարգչի ողջ կյանքի ընթացքը: Օրինակ, հետևյալ ծրագիրը կքնի 3 վայրկյան՝

Օրինակ՝

import java.util.*;

public class SleepDemo {

public static void main(String args[]) {

try {

System.out.println(new Date( ) + “\n”);

Thread.sleep(5*60*10);

System.out.println(new Date( ) + “\n”);

} catch (Exception e) {

System.out.println(“Got an exception!”);

}

}

}

 

Արդյունքը՝

Sun May 03 18:04:41 GMT 2009

Sun May 03 18:04:51 GMT 2009

 

Ժամանակի չափումը/ Elapsed Time

Երբեմն, գուցե անհրաժեշտ լինի չափել ժամանակը միլիվայրկյաններով: Այնպես որ, եկեք վերը նշված օրինակը կրկին գրենք։

 

Օրինակ՝

import java.util.*;

public class DiffDemo {

public static void main(String args[]) {

try {

long start = System.currentTimeMillis( );

System.out.println(new Date( ) + “\n”);

Thread.sleep(5*60*10);

System.out.println(new Date( ) + “\n”);

long end = System.currentTimeMillis( );

long diff = end – start;

System.out.println(“Difference is : ” + diff);

} catch (Exception e) {

System.out.println(“Got an exception!”);

}

}

}

 

Արդյունքը՝

Sun May 03 18:16:51 GMT 2009

Sun May 03 18:16:57 GMT 2009

Difference is : 5993

 

Հարգելի ընթերցող, խնդրում ենք չմոռանալ like տալ մեր ֆեյսբուքյան էջին, քանի որ նորությունների մեծ մասը առաջինը տեղադրվում է հենց այնտեղ։ Ինչպես նաև հետևեք մեզ այլ սոցիալական ցանցերում և, իհարկե, գրանցվեք մեր բլոգում։

Share.