1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo lập trình java về Interoperating with Legacy Code

9 437 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 88,74 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

.. .Lập trình Java – IT4784 Phần I Giới thiệu Interoperating with Legacy Code • Như sáng tạo hoàn toàn mới, ngày thời gian API Java phải tương thích với lớp có, chẳng hạn java. util.Date, java. util.GregorianCalender,... (Instant) NGUYỄN ĐỨC HẬU - 20124977 Lập trình Java – IT4784 • Tương tự vậy, ZonedDateTime tương tự java. util.GregorianCalendar, lớp có phương th ức chuyển đổi Java Phương thức chuyển đổi toZonedDateTime... 15:45:50 ICT 2014 NGUYỄN ĐỨC HẬU - 20124977 Lập trình Java – IT4784 Phần II Câu hỏi trắc nghiệm 1) Câu 1:Phương thức dùng để chuyển đổi lớp java. util.Date java. time.Instant? A Date.from(instant)

Trang 1

-BÁO CÁO MÔN H C ỌC BÁCH KHOA HÀ NỘI

L P TRÌNH JAVA ẬP TRÌNH JAVA – IT4784 5.7 Interoperating with Legacy Code

MSSV: 20124977

GV h ướp: CNTT1.02 – K57 ng d n: TS Nguy n H ng Quang ẫn: TS Nguyễn Hồng Quang ễn Đức Hậu ồng Quang

Trang 2

Ph n I Gi i thi u v Interoperating with Legacy Code ần I Giới thiệu về Interoperating with Legacy Code ới thiệu về Interoperating with Legacy Code ệu về Interoperating with Legacy Code ề Interoperating with Legacy Code

 Nh m t sáng t o hoàn toàn m i, ngày và th i gian API trong Java ư ội, ngày ạo hoàn toàn mới, ngày và thời gian API trong Java ớp: CNTT1.02 – K57 ời gian API trong Java

s ph i tẽ phải tương thích với các lớp hiện có, chẳng hạn như ải tương thích với các lớp hiện có, chẳng hạn như ương thích với các lớp hiện có, chẳng hạn như ng thích v i các l p hi n có, ch ng h n nh ớp: CNTT1.02 – K57 ớp: CNTT1.02 – K57 ện có, chẳng hạn như ẳng hạn như ạo hoàn toàn mới, ngày và thời gian API trong Java ư

java.util.Date, java.util.GregorianCalender, và

java.sql.Date/Time/Timestamp

 L p Th i gian hi n t i(Instant) là ớp: CNTT1.02 – K57 ời gian API trong Java ện có, chẳng hạn như ạo hoàn toàn mới, ngày và thời gian API trong Java g n ần tương thích với các lớp hiện có, chẳng hạn như ng t nh l p ự như lớp ư ớp: CNTT1.02 – K57

java.util.Date Trong Java 8, l p này có hai phớp: CNTT1.02 – K57 ương thích với các lớp hiện có, chẳng hạn như ng th c b sung: ức Hậu ổ sung:

phương thích với các lớp hiện có, chẳng hạn như ng th c toInstant có th chuy n đ i m t ngàyức Hậu ể chuyển đổi một ngày ể chuyển đổi một ngày ổ sung: ội, ngày (Date) sang th i ời gian API trong Java gian hi n t iện có, chẳng hạn như ạo hoàn toàn mới, ngày và thời gian API trong Java (Instant), và gi nguyên phữ nguyên phương thức có thể chuyển ương thích với các lớp hiện có, chẳng hạn như ng th c có th chuy n ức Hậu ể chuyển đổi một ngày ể chuyển đổi một ngày

đ i theo hổ sung: ướp: CNTT1.02 – K57ng khác

Ví d :Instant & Dateụ :Instant & Date Date date = Date.from(instant); // API -> legacy Instant instant = date.toInstant(); // legacy -> new API

 Date.from (Instant) : tạo ra một đối tượng ngày(Date) từ một thời gian hiện tại(Instant)

 Date.toInstant() : chuyển đổi một đối tượng ngày(Date) sang một thời gian hiện tại (Instant)

Trang 3

java.util.GregorianCalendar, và l p này cũng có các phớp: CNTT1.02 – K57 ương thích với các lớp hiện có, chẳng hạn như ng th c ức Hậu

có th chuy n đ i trong Java 8 Phể chuyển đổi một ngày ể chuyển đổi một ngày ổ sung: ương thích với các lớp hiện có, chẳng hạn như ng th c chuy n đ i ức Hậu ể chuyển đổi một ngày ổ sung:

toZonedDateTime t GregorianCalendar sang ZonedDateTime, và ừ GregorianCalendar sang ZonedDateTime, và có

th ể chuyển đổi một ngày chuy n đ i ngể chuyển đổi một ngày ổ sung: ược lại ạo hoàn toàn mới, ngày và thời gian API trong Java c l i

Ví d : ụ :Instant & Date ZonedDateTime & GregorianCalendar GregorianCalendar gc = GregorianCalendar.from(zdt) ; ZonedDateTime zdt = cal.toZonedDateTime();

 GregorianCalendar.from (ZonedDateTime) : tạo ra một đối tượng GregorianCalendar bằng cách sử dụng ngôn ngữ mặc định từ một ZonedDateTime

 cal.toZonedDateTime () : chuyển đổi một GregorianCalendar sang một ZonedDateTime

 M t b chuy n đ i có s n cho các l p ngày và th i gian trong gói ội, ngày ội, ngày ể chuyển đổi một ngày ổ sung: ẵn cho các lớp ngày và thời gian trong gói ớp: CNTT1.02 – K57 ời gian API trong Java java.sql B n cũng có th s d ng m t DateTimeFormatter t mã ạo hoàn toàn mới, ngày và thời gian API trong Java ể chuyển đổi một ngày ử dụng một DateTimeFormatter từ mã ụ :Instant & Date ội, ngày ừ GregorianCalendar sang ZonedDateTime, và

k th a đ s d ng java.text.Format.ế thừa để sử dụng java.text.Format ừ GregorianCalendar sang ZonedDateTime, và ể chuyển đổi một ngày ử dụng một DateTimeFormatter từ mã ụ :Instant & Date

Ví dụ :Instant & Date Date today = new Date();

System.out.println("Today is : " + today);

SimpleDateFormat("dd-MM-yyyy");

System.out.println("Today in dd-MM-yyyy format : " + date);

Trang 4

 B ng chuy n đ i gi a các l p java.time và l p k th a ải tương thích với các lớp hiện có, chẳng hạn như ể chuyển đổi một ngày ổ sung: ữ nguyên phương thức có thể chuyển ớp: CNTT1.02 – K57 ớp: CNTT1.02 – K57 ế thừa để sử dụng java.text.Format ừ GregorianCalendar sang ZonedDateTime, và

L pớp: CNTT1.02 – K57 Các phương thích với các lớp hiện có, chẳng hạn như ng th c chuy n đ iức Hậu ể chuyển đổi một ngày ổ sung:

Date & Instant

+ Date.from(instant): t o ra m tạo hoàn toàn mới, ngày và thời gian API trong Java ội, ngày đ i tối tượng ược lạing ngày(Date) t m từ GregorianCalendar sang ZonedDateTime, và ội, ngày th i gian hi n t i(Instant).ời gian API trong Java ện có, chẳng hạn như ạo hoàn toàn mới, ngày và thời gian API trong Java + date.toInstant(): chuy n đ i m tể chuyển đổi một ngày ổ sung: ội, ngày đ i tối tượng ược lạing ngày(Date) sang m tội, ngày th i gian hi n t i (Instant).ời gian API trong Java ện có, chẳng hạn như ạo hoàn toàn mới, ngày và thời gian API trong Java

ZonedDatetime &

GregorianCalendar

+ GregorianCalendar.from (zonedDateTime) : tạo ra một đối tượng GregorianCalendar từ một ZonedDateTime

+ cal.toZonedDateTime () : chuyển đổi một GregorianCalendar sang một ZonedDateTime

Instant &

TimeStamp

+ TimeStamp.from(instant) : t o ra m t đ i tạo hoàn toàn mới, ngày và thời gian API trong Java ội, ngày ối tượng ược lạing nhãn th i gian(TimeStamp) t th i gian hi n ời gian API trong Java ừ GregorianCalendar sang ZonedDateTime, và ời gian API trong Java ện có, chẳng hạn như

t i(Instant).ạo hoàn toàn mới, ngày và thời gian API trong Java + timestamp.toInstant() : chuy n đ i t m t nhãn ể chuyển đổi một ngày ổ sung: ừ GregorianCalendar sang ZonedDateTime, và ội, ngày

th i gian(TimeStamp) sang th i gian hi n ời gian API trong Java ời gian API trong Java ện có, chẳng hạn như

t i(Instant).ạo hoàn toàn mới, ngày và thời gian API trong Java

LocalDateTime &

TimeStamp

+Timestamp.valueOf(localDateTime) :t o ra ạo hoàn toàn mới, ngày và thời gian API trong Java java.sql.TimeStamp t LocalDateTime.ừ GregorianCalendar sang ZonedDateTime, và

+ timestamp.toLocalDateTime() : chuy n đ i t ể chuyển đổi một ngày ổ sung: ừ GregorianCalendar sang ZonedDateTime, và TimeStamp sang LocalDateTime

LocalDate & Date + Date.valueOf(localDate) : t o java.sql.Date t LocalDate ạo hoàn toàn mới, ngày và thời gian API trong Java ừ GregorianCalendar sang ZonedDateTime, và

+ date.toLocalDate() : chuy n đ i t Date sang ể chuyển đổi một ngày ổ sung: ừ GregorianCalendar sang ZonedDateTime, và LocalDate

LocalTime & Time + Time.valueOf(localTime) : t o java.sql.Time t LocalTime ạo hoàn toàn mới, ngày và thời gian API trong Java ừ GregorianCalendar sang ZonedDateTime, và

+ time.toLocalTime() : chuy n đ i t Time sang ể chuyển đổi một ngày ổ sung: ừ GregorianCalendar sang ZonedDateTime, và LocalTime

DateTimeFormatte

r & DateFormat

+ Formatter.toFormat() : chuy n đ i t ể chuyển đổi một ngày ổ sung: ừ GregorianCalendar sang ZonedDateTime, và DateTimeFormatter sang DateFormat

TimeZone & +TimeZone.getTimeZone(id) : t o TimeZone t ZoneId ạo hoàn toàn mới, ngày và thời gian API trong Java ừ GregorianCalendar sang ZonedDateTime, và

Trang 5

FileTime & Instant + fileTime.toInstant() : chuy n đ i t FileTime sang ể chuyển đổi một ngày ổ sung: ừ GregorianCalendar sang ZonedDateTime, và

Instant

Ví dụ: Instant & TimeStamp TimeStamp timeStamp = TimeStamp.from(instant); // API -> legacy Instant instant = time.toInstant(); // legacy -> new API

Ví dụ : LocalDate & Date Date date = Date.valueOf(localDate); // API -> legacy LocalDate localDate = date.toLocalDate(); // legacy -> new API

Ví dụ : LocalDateTime & TimeStamp TimeStamp timeStamp = TimeStamp.valueOf(ldt);

LocalDateTime ldt = timeStamp.toLocalDateTime();

Ví dụ : LocalTime & Time Time time = Time.valueOf(localTime); // API -> legacy LocalTime localTime = time.toLocalTime(); // legacy -> new API

Ví dụ : TimeZone & ZoneId TimeZone timeZone = TimeZone.getTimeZone(zoneId);

ZoneId zoneId = timeZoned.toZoneId();

Ví dụ : FileTime & Instant FileTime fileTime = FileTime.from(instant);

Instant instant = fileTime.toInstant();

Trang 6

 M t s ví d c thội, ngày ối tượng ụ :Instant & Date ụ :Instant & Date ể chuyển đổi một ngày

Ví d 1:ụ :Instant & Date chuy n đ i gi a Date & Instantể chuyển đổi một ngày ổ sung: ữ nguyên phương thức có thể chuyển

public class Main { public static void main(String[] args) {

System.out.println("Date: " + dt);

Instant in = dt.toInstant();

System.out.println("Instant: " + in);

Date dt2 = Date.from(in);

System.out.println("Date: " + dt2);

} }

K t quế thừa để sử dụng java.text.Format ải tương thích với các lớp hiện có, chẳng hạn như

Date: Mon Sep 21 20:09:49 ICT 2015 Instant: 2015-09-21T13:09:49.937Z Date: Mon Sep 21 20:09:49 ICT 2015

Trang 7

Ví d 2: ụ :Instant & Date

public class Main {

public static void main(String[] args) {

LocalDate ld = gc.toZonedDateTime().toLocalDate();

System.out.println("Local Date: " + ld);

LocalTime lt = gc.toZonedDateTime().toLocalTime();

System.out.println("Local Time: " + lt);

LocalDateTime ldt = gc.toZonedDateTime().toLocalDateTime();

System.out.println("Local DateTime: " + ldt);

OffsetDateTime od = gc.toZonedDateTime().toOffsetDateTime();

System.out.println("Offset Date: " + od);

OffsetTime ot = gc.toZonedDateTime().toOffsetDateTime().toOffsetTime(); System.out.println("Offset Time: " + ot);

ZonedDateTime zdt = gc.toZonedDateTime();

System.out.println("Zoned DateTime: " + zdt);

ZoneId zoneId = zdt.getZone();

TimeZone timeZone = TimeZone.getTimeZone(zoneId);

System.out.println("Zone ID: " + zoneId);

System.out.println("Time Zone ID: " + timeZone.getID());

GregorianCalendar gc2 = GregorianCalendar.from(zdt);

}

}

Kết quả :

Local Date: 2014-03-11

Local Time: 15:45:50

Local DateTime: 2014-03-11T15:45:50

Offset Date: 2014-03-11T15:45:50+07:00

Offset Time: 15:45:50+07:00

Trang 8

Time Zone ID: Asia/Bangkok

Gregorian Calendar: Tue Mar 11 15:45:50 ICT 2014

Ph n II Câu h i tr c nghi m ần I Giới thiệu về Interoperating with Legacy Code ỏi trắc nghiệm ắc nghiệm ệu về Interoperating with Legacy Code

1) Câu 1:Ph ương thích với các lớp hiện có, chẳng hạn như ng th c nào dùng đ chuy n đ i gi a 2 l p ức Hậu ể chuyển đổi một ngày ể chuyển đổi một ngày ổ sung: ữ nguyên phương thức có thể chuyển ớp: CNTT1.02 – K57

java.util.Date và java.time.Instant?

A Date.from(instant)

B Instant.toDate();

C date.getInstant();

D date.toLocalTime();

Đáp án A

2) Câu 2: K t qu đo n code sau là : ế thừa để sử dụng java.text.Format ải tương thích với các lớp hiện có, chẳng hạn như ạo hoàn toàn mới, ngày và thời gian API trong Java

DateTimeFormatter f = DateTimeFormatter.ofPattern("MMMM

dd, yyyy, hh:mm:ss");

System.out.println(dateTime.format(f));

B January 20, 2020, 11:12:34

C January 20, 20, 11:12:34

D Jan 20, 20, 11:12:34

Đáp án B

3) Câu 3: Ph ương thích với các lớp hiện có, chẳng hạn như ng th c nào dùng đ chuy n đ i gi a 2 l p ức Hậu ể chuyển đổi một ngày ể chuyển đổi một ngày ổ sung: ữ nguyên phương thức có thể chuyển ớp: CNTT1.02 – K57

A Instant.fromZonedDateTime();

B date.toZonedDateTime();

C zdt.toLocalTime();

Ngày đăng: 29/09/2015, 08:21

TỪ KHÓA LIÊN QUAN

w