Microsoft Word кл программирование на Java 2020 Зорина docx


Метод set(int field,int value)



Pdf көрінісі
бет64/65
Дата17.10.2023
өлшемі3,23 Mb.
#117230
түріРеферат
1   ...   57   58   59   60   61   62   63   64   65
Метод set(int field,int value) 
Как уже отмечалось ранее данный метод производит установку какого - либо 
поля даты. На самом деле после вызова этого метода, немедленного пересчета даты 
не производится. Пересчет даты будет осуществлен только после вызова методов 
get(), getTime() или TimeInMillis(). Т.о. последовательная установка нескольких 
полей, не вызовет не нужных вычислений. Помимо этого, появляется еще один 
интересный эффект. Рассмотрим следующий пример. Предположим, что дата 
установлена на последний день августа. Необходимо перевести ее на последний день 
сентября. Если внутреннее представление даты изменялось бы после вызова метода 
set, то при последовательной установке полей мы получили бы вот такой эффект. 
public class Test { 


137 
public Test() { 

public static void main(String[] args) { 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMMM 
dd HH:mm:ss"); 
Calendar cal = Calendar.getInstance(); 
cal.set(Calendar.YEAR,2002); 
cal.set(Calendar.MONTH,Calendar.AUGUST); 
cal.set(Calendar.DAY_OF_MONTH,31); 


System.out.println(" Initialy set date: 
sdf.format(cal.getTime())); 
cal.set(Calendar.MONTH,Calendar.SEPTEMBER); 
System.out.println(" Date with month changed 
: " + 
sdf.format(cal.getTime())); 
cal.set(Calendar.DAY_OF_MONTH,30); 


System.out.println(" Date with day changed 

sdf.format(cal.getTime())); 


 
Вывод программы: 
Initialy set date: 
2002 August 31 
22:57:47 
Date with month changed : 2002 October 
01 22:57:47 
Date with day 
changed : 
2002 October 30 
22:57:47 
Еще пример листинга: 
import java.text.SimpleDateFormat; 
import java.util.Date; 
public class DateTest { 
public static void main(String[] args) { 
Date now = new Date(); 
System.out.println("toString(): " + now); // 
dow mon dd hh:mm:ss zzz yyyy 
// SimpleDateFormat 
может
использоваться
для
управления
форматом
отображения
даты
/
времени



138 
// E (
день
недели
): 3E or fewer (
в
текстовом
формате
xxx), >3E (
в
полном
текстовом
формате

// M (
месяц
): M (in number), MM ( 
в
числовом
виде

впереди
ноль

// 3M: (
в
текстовом
формате
xxx), 
>3M: (
в
полном
текстовом
формате

// h (
часы
): h, hh (with leading zero) 
// m (
минуты

// s (
секунды

// a (AM/PM) 
// H (
часы

до
23) 
// z (
временная
зона

SimpleDateFormat dateFormatter = new 
SimpleDateFormat("E, y-M-d 'at' h:m:s a z"); 
System.out.println("Format 1: " + 
dateFormatter.format(now)); 
dateFormatter = new SimpleDateFormat("E 
yyyy.MM.dd 'at' hh:mm:ss a zzz"); 
System.out.println("Format 2: " + 
dateFormatter.format(now)); 
dateFormatter = new SimpleDateFormat("EEEE, MMMM 
d, yyyy"); 
System.out.println("Format 3: " + 
dateFormatter.format(now));
 
Вывод программы
toString(): Sat Sep 25 21:27:01 SGT 2010 
Format 1: Sat, 10-9-25 at 9:27:1 PM SGT 
Format 2: Sat 2010.09.25 at 09:27:01 PM SGT 
Format 3: Saturday, September 25, 2010
Вывод 
Класса Date будет достаточно, если вам просто нужна простая отметка времени. 
Вы можете использовать SimpleDateFormat для управления форматом отображения 
даты /времени. Используйте класс java.util.Calendar, если вам нужно извлечь год
месяц, день, час, минуту и секунду или манипулировать этими полями (например, 7 
дней спустя, 3 недели назад). 
Используйте java.text.DateFormat для форматирования даты (от даты до текста) 
и разбора строки даты (от текста к дате). SimpleDateForamt является подклассом 


139 
DateFormat. 
Date 
является устаревшим классом, который не поддерживает 
интернационализацию. Calendar и DateFormat поддерживают локалзацию (вам нужно 
учитывать локализацию только в том случае, если ваша программа будет работать во 
нескольких странах одновременно).


Достарыңызбен бөлісу:
1   ...   57   58   59   60   61   62   63   64   65




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет