2012-10-23 4 views
1
Date date = new Date(); 
int lastMonth = date.getMonth(); 
int lastYear = 1900 + date.getYear(); 

У меня этот код в моем проекте GWT, но много метода java.util.Date устарел, 22/33 метода.
Так что я хочу использовать Calendar/GregorianCalendar: он не работает. Он сказал, что отсутствует пакет.Как заменить объект даты

Какова наилучшая практика для замены этой строки кода на не устаревший код?

+0

Вы конкретно говорите о клиентском коде, верно? – Dunes

+0

@RohitJain GWT - это инструментарий из google, который переводит Java в javascript, чтобы как сервер, так и клиент могли быть написаны на одном языке. База клиентского кода (одна переведена в javascript) довольно ограничена, например, класс Calendar не доступен. – Dunes

+0

@Dunes. Спасибо за информацию. не было идеи. –

ответ

3

Не надо.

java.util.Calendar почти невозможно подражать, и имеет слишком высокий накладные расходы. java.util.Date, хотя это далеко не идеальное место, находится ближе всего к JavaScript Date, поэтому он тот, который вы должны использовать в GWT world.

JSR 310 многообещающий (не знаю, как хорошо его можно было эмулировать, и с тем, сколько накладных расходов по сравнению с java.util.Date), но пока нет.

Существует также Joda Time (от того же автора, что и JSR 310, JSR 310 направлена ​​на то, чтобы довести Joda Time до JDK вместе с исправлением некоторых из его ранних ошибок дизайна), но большинство портов GWT уже давно оставлены.

В конце: используйте java.util.Date.

И если вы найдете предупреждения об устаревании, раздражающие, то подавите их: @SuppressWarnings("deprecated").

+0

Dommage! Я добавлю это @SuppressWarnings ("устаревшее") так. GWT используется только во Франции? Каждый я что-то рассказываю о GWT, получаю только ответ от французского ...: oD – Manu

0

java.util.Date не устарели! По общему признанию, многие его методы (например, getMonth и getYear), которые я пытаюсь избежать использовать. В случае GWT вы можете использовать что-то вроде DateTimeFormat для форматирования даты и разбора.

+0

'java.util.Date не устарел': просто взгляните на http://docs.oracle.com/javase/1.5.0/ Docs/API/index.html? Java/SQL/Date.html. Конечно, класс не устарел, но методы 22/33 устарели: для меня это означает: «не используйте этот класс, не более». – Manu

+0

Я имею в виду http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Date.html – Manu

+0

java.util.Date по-прежнему используется во многих местах в качестве удобной временной метки. Например, java.sql.Timestamp является подклассом Date. Дата API форматирования/манипуляции содержит устаревшие, но класс определенно отсутствует. –

Смежные вопросы