„Сетих се, че исках да ви разкажа малко за работата с дати.“

„Вече ми казахте, че Java има клас Date и мога да използвам този клас, за да работя с дати.“

"Хм. Е, класът Дата е остарял за известно време."

„Сега се препоръчва instead of това да използвате класа Calendar, който има метод getTime(), който връща текущата дата.“

„Това е обект на календар, който обикновено се създава:“

Създайте обект Календар
Calendar cal = Calendar.getInstance();

„Когато извикате този метод, правилният календар се създава въз основа на настройките на вашия компютър.“

„„Правилният“ календар? Това означава ли, че има няколко?“

„Да. Е, по-точно би било да се каже „уместно“. Факт е, че Земята има не един, а много календари. Почти всеки от тях е свързан с няHowва религия or държава.“

„Годината може да е различна в зависимост от това в коя страна се намирате.“

"Ето примери за най-често срещаните календари."

Календар клас Име на календара
Грегориански календар Християнски григориански календар
будистки календар будистки календар
Японски имперски календар Японски императорски календар

„Има и китайски календар, ислямски календар и много други.“

"Виждам."

„За да получите текущата дата, трябва да напишете code по следния начин:“

Вземете текущото време
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();

„Класът Календар има много методи, които ви позволяват бързо да получите всяHowва информация за дата и час.“

Код Коментари
Calendar calendar = Calendar.getInstance();

int era = calendar.get(Calendar.ERA);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);

int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
ера 
година 
месец 
ден от месеца

ден от седмицата (пн, вт, ср, …)
час 
minutesа 
секунда

„Понякога наистина трябва да получите само част от наличната информация. Например текущата година or ден от седмицата.“

„Но понякога просто трябва да покажете датата в правилния формат.“

„Например в регистрационния файл or някъде другаде.“

„Или направете формат, който потребителят може да персонализира. Какво правите тогава?“

„Има специални класове и за това. Класът SimpleDateFormat е напълно подходящ за задачата, която описахте:“

Как да изведете дата в желания формат
Calendar calendar = Calendar.getInstance();

DateFormat formatter = new SimpleDateFormat("MM-DD-YY");

String message = formatter.format(calendar.getTime());

„Ах. Спомням си. Вече ми обяснихте нещо за SimpleDateFormat , но честно казано не помня много.“

„Всичко е много просто. Създавате SimpleDateFormat обект и му предавате шаблона за дата, който искате да получите. След това извиквате метода за форматиране и той ви дава подадената дата в желаната форма.“

„Звучи интересно. Бих искал повече подробности.“

„Ето ви. Подробностите. Ето някои от буквите, които могат да се използват в шаблона за дата:“

Писмо Описание
Ж Заменен от ерата (АД or пр.н.е.)
г Сменени от годината
М Сменени от месеца
w Номер на седмицата в годината
У Номер на седмицата в месеца
д Номер на деня в годината
д Ден от месеца
Е Ден от седмицата в месеца
д Ден от седмицата
а AM/PM (преди or след обяд)
з Час в 24-часов формат (0-23)
к Час в 24-часов формат (1-24)
К Час в 12-часов формат (0-11)
ч Час в 12-часов формат (1-12)
м Минути
с Секунди
С Мorсекунди
z Часова зона, форматирана така: Тихоокеанско стандартно време, PST
З Часова зона, форматирана така: -0800/td>

„Готино! Това е почти всичко, от което се нуждаете.“

„Все още има някои нюанси, свързани с повтарянето на тези букви.

"Ако напишете YY, ще получите последните две цифри на годината. Ако напишете YYYY, ще получите всичките четири цифри на годината."

„Има и известна сложност с месеците. MM е числото на месеца. MMM е трибуквено съкращение на месеца, т.е. Jan, Feb, Mar, Apr, May и т.н. MMMM означава пълното име на месеца ."

„Можете също да покажете целия ден от седмицата (използвайки EEEE) or само първите две букви (използвайки EE).“

„Благодаря, Риши. Този клас SimpleDateFormat наистина е полезен. Сега знам.“

„Приятно използване! И успех!“