powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / установить дату
52 сообщений из 52, показаны все 3 страниц
установить дату
    #38143451
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хочу запихнуть в переменную дату 2012.01.01(например)
делаю так:
Код: java
1.
Date date= new Date(2012,1,1);


но в переменную записывается что-то странное.
Как быть?
...
Рейтинг: 0 / 0
установить дату
    #38143511
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    /**
     * Allocates a <code>Date</code> object and initializes it so that 
     * it represents midnight, local time, at the beginning of the day 
     * specified by the <code>year</code>, <code>month</code>, and 
     * <code>date</code> arguments. 
     *
     * @param   year    the year minus 1900.
     * @param   month   the month between 0-11.
     * @param   date    the day of the month between 1-31.
     * @see     java.util.Calendar
     * @deprecated As of JDK version 1.1,
     * replaced by <code>Calendar.set(year + 1900, month, date)</code>
     * or <code>GregorianCalendar(year + 1900, month, date)</code>.
     */
    @Deprecated
    public Date(int year, int month, int date) {
        this(year, month, date, 0, 0, 0);
    }
...
Рейтинг: 0 / 0
установить дату
    #38143512
leader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,

Надо так
Код: java
1.
2.
3.
Calendar cal = Calendar.getInstance();
cal.set(2012, Calendar.JANUARY, 1);
Date date = cal.getTime();
...
Рейтинг: 0 / 0
установить дату
    #38143531
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Затронули больную тему.
...
Рейтинг: 0 / 0
установить дату
    #38143536
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЗатронули больную тему.
Пятница ведь.
...
Рейтинг: 0 / 0
установить дату
    #38143540
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЗатронули больную тему.
Не спугни :) Ща начнется
...
Рейтинг: 0 / 0
установить дату
    #38143560
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ничего не начнётся. Все уже в шортах и руки потирают.
...
Рейтинг: 0 / 0
установить дату
    #38143597
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, всё получилось))
Но как-то через ..пу придумано имхо
...
Рейтинг: 0 / 0
установить дату
    #38143599
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

И шпроты уже открыты и бутылка в морозилке? :)
А как же
Код: java
1.
cal.set(2013, Calendar.FEBRUARY, 30);



Извиняюсь, что-то на хихи пробило, больше не буду
...
Рейтинг: 0 / 0
установить дату
    #38143617
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайт давайте. Плодите сущности.
...
Рейтинг: 0 / 0
установить дату
    #38143707
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
а immutable Сalendar есть какой-нить7
...
Рейтинг: 0 / 0
установить дату
    #38143713
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90mayton,
а immutable Сalendar есть какой-нить7
Это уменьшит количество сущностей?
...
Рейтинг: 0 / 0
установить дату
    #38143909
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

да
...
Рейтинг: 0 / 0
установить дату
    #38143919
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дай бог. Еще создайте планету Земля. Солнечную систему...

С тяпницей вобщем всех.
...
Рейтинг: 0 / 0
установить дату
    #38143925
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,

Код: java
1.
2.
3.
4.
5.
6.
    public final void setTime(Date date) {
        setTimeInMillis(date.getTime());
    }

    ....
    public void setTimeInMillis(long millis) {



Хочешь использовать только long??? Это жесть...
...
Рейтинг: 0 / 0
установить дату
    #38145855
pasha701
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://joda-time.sourceforge.net/] http://joda-time.sourceforge.net/

new DateMidnight(2013, 2, 11).toDate()
...
Рейтинг: 0 / 0
установить дату
    #38146674
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я знал что приведут эту ссылку. Off:
JDK помошник лучшй самый есть Йода.
...
Рейтинг: 0 / 0
установить дату
    #38147062
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЯ знал что приведут эту ссылку. Off:
JDK помошник лучшй самый есть Йода.


плохая ссылка?
...
Рейтинг: 0 / 0
установить дату
    #38147082
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
))) Ссылка, возможно, замечательная. Но на кой, спрашивается, решать задачи путем подключения дополнительных библиотек, когда родной встроенный пакет решает их на ура? Может, там и на new Integer(..) чего-то найдется, чтобы принципиально не использовать базовый пакет?
...
Рейтинг: 0 / 0
установить дату
    #38147583
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckНо на кой
дело в том, что лениво и не лаконично для того чтобы прибавить к дате два дня, инициализировать всю ту фигню с календарем. так что если и не внешняя библиотека, то хотя-бы свой хелпер нужен. лично мне в 99% случаев хватает DateUtils из commons-lang, который все равно почти всегда присутствует.
...
Рейтинг: 0 / 0
установить дату
    #38147765
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и мне в 100% пока хватало Date+Calendar+DateUtils для работы с датами. А в контексте вопроса
redwhite90запихнуть в переменную дату 2012.01.01(например)
и подавно ...
...
Рейтинг: 0 / 0
установить дату
    #38147800
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как решаетают эту задачу в Oracle (уже лет 20).

Код: plsql
1.
SYSDATE+1



Как решают эту задачу в Java... я не знаю. Наверное любители
ООП - мозохисты. Им нравится плодить сущности где надо и где
не надо. Я не спроста поинтересовался почему-бы не создать
объект "Солнечная Систем" и взять из него объект "Планета Земля"
и взять календарь e.t.c.
...
Рейтинг: 0 / 0
установить дату
    #38147805
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача - взять следующий день.
...
Рейтинг: 0 / 0
установить дату
    #38148031
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaдело в том, что лениво и не лаконично для того чтобы прибавить к дате два дняПлохо понимаю, в чём проблема прибавить два разА по 86400 секунд.
Если уж работаем с Date.
...
Рейтинг: 0 / 0
установить дату
    #38148102
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovchpashaдело в том, что лениво и не лаконично для того чтобы прибавить к дате два дняПлохо понимаю, в чём проблема прибавить два разА по 86400 секунд.
Если уж работаем с Date.
а если месяц? будем писать код вида 30*86400, а год? супротив DateUtils.addMonths(date, 1)?
...
Рейтинг: 0 / 0
установить дату
    #38148143
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне так нравится как "базисты" относятся к объекту типа дата (время/дата-время и т.д.) ... )))
Для базы это фактически такой же "примитив", как и чисто, строка и прочие. Для ЯП и тем более ООЯП это достаточно сложный объект. И я не понимаю, почему для установки этого достаточно "сложного" объекта ОБЯЗАНА быть функция/метод длиной в 5 символов и не более одной строки? И чем так плох Calendar, особенно если учесть тот факт, что напрямую вызвать new нельзя, только использование инстанса? Что-то не понимаю я ряд товарищей ...
...
Рейтинг: 0 / 0
установить дату
    #38148349
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovchpashaдело в том, что лениво и не лаконично для того чтобы прибавить к дате два дняПлохо понимаю, в чём проблема прибавить два разА по 86400 секунд.
Если уж работаем с Date.
Нельзя брадт. Неконцептуально. Делай в рамках технологии. Тобишь создавай календарь...
...
Рейтинг: 0 / 0
установить дату
    #38148358
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaа если месяц? будем писать код вида 30*86400, а год? супротив DateUtils.addMonths(date, 1)?Не надо объямывать необъятное и впихивать невпихуевоемое :)
java.util.Date это время, а время и календарные даты плохо сочетаются.
...
Рейтинг: 0 / 0
установить дату
    #38148361
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДелай в рамках технологии.Читал в детстве "Юный техник" и была в нём статья "Допуски и посадки".
Очень познавательно - втулка одного диаметра с отверстием могут быть от "теплоходовая" до "глухая посадка".
Строго в рамках технологии и класса точности.
...
Рейтинг: 0 / 0
установить дату
    #38148422
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не спорю. Юный техник уважаю. Но в основе JDK очевидно стоит какая-то идея
или идеология. И она (идея) должна помогать разработке. В чем помогает введение
календаря - я не знаю. Мне оно не помогает.
...
Рейтинг: 0 / 0
установить дату
    #38148430
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovchpashaа если месяц? будем писать код вида 30*86400, а год? супротив DateUtils.addMonths(date, 1)?Не надо объямывать необъятное и впихивать невпихуевоемое :)
все объято уже до нас и до нас же впихуенно, потому приходится иметь дело с Date тут и сям. и нет, Date это не время, это точка во времени с точностью до миллисекунд. а Calendar официальный конвертер для нее. т.е. можно сказать, что Date вполне себе сочетается с календарными датами через Calendar.
но мы можем еще немного поспорить о
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
date.getTime() + 30*86400

vs

Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.MONTH,1);
c.getTime();

vs

DateUtils.addMonths(date, 1)
...
Рейтинг: 0 / 0
установить дату
    #38148434
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНе спорю. Юный техник уважаю. Но в основе JDK очевидно стоит какая-то идея
или идеология. И она (идея) должна помогать разработке. В чем помогает введение
календаря - я не знаю. Мне оно не помогает.
он предназначен для манипуляции с датой. т.е. Date это тип данных, а Calendar это набор операторов над этим типом данных. Собственно топик был о том, что в силу своей нелаконичности удобней пользоваться врапперами над Calendar, commons.lang как простейший вариант, ну или joda time, если много сложных манипуляций.
...
Рейтинг: 0 / 0
установить дату
    #38148450
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha, ораклоиды над нами будут смеяться. Почему у них нет проблем?
Что тип DATE настолько сложен и инкапсулирует в себе тонну логики?
Чем он лучше чем java.util.Date?

Я уже не спорю по поводу функционала Календаря. Я задаю другой вопрос.

Почему у них не так? И почеу у них нет проблем?
...
Рейтинг: 0 / 0
установить дату
    #38148513
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonchpasha, ораклоиды над нами будут смеяться. Почему у них нет проблем?
а у нас они есть?

maytonЧто тип DATE настолько сложен и инкапсулирует в себе тонну логики?
Чем он лучше чем java.util.Date?
ничем

maytonЯ уже не спорю по поводу функционала Календаря. Я задаю другой вопрос.
Почему у них не так?
я оракл не знаю, но по-моему pl/sql процедурный нет? т.е. есть некая функция типа datepart(date,'month'), а ява объектная и у нас Calendar.get(Calendar.MONTH). ну у них перегрузка операторов есть, ок.

mayton И почеу у них нет проблем?
у нас тоже их нет. в чем проблема-то лично у тебя? лично я проблему вижу только в том, что раньше Calendar не было, и народ повсюду юзал Date. теперь Calendar есть, а коду с Date уже понаписано, вот и приходится крутиться.
...
Рейтинг: 0 / 0
установить дату
    #38149019
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonchpasha, ораклоиды над нами будут смеяться. Почему у них нет проблем?
Что тип DATE настолько сложен и инкапсулирует в себе тонну логики?
Чем он лучше чем java.util.Date?

Я уже не спорю по поводу функционала Календаря. Я задаю другой вопрос.

Почему у них не так? И почеу у них нет проблем?

Ну почему же нет проблем? До отмены перевода времени в России было очень интересно пройтись в pl/sql по суткам перевода. В цикле, добавляя час к предыдущей дате.
Как второй прикол: записать в базу на сутки перевода лето-зима значения: на 2 часа ночи (первое) и после возврата стрелок на час назад (второе). Или вытащить их как уникальные, не помню точно....

И вообще споры о том что лучше: оракловая Date или java.util.Date выглядят интересно, если учесть что при маппинге первое маппируется на второе :)

И по поводу "нет проблем"...
TIMESTAMP , TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE имхо появились в оракле совсем не от того что нет проблем. Хотя с таймзонами это уже наверно другая песня...
...
Рейтинг: 0 / 0
установить дату
    #38149061
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBezэто уже наверно другая песня
другая. Т.к. там вприкладном коде верхнего уровня задумываться об этом не надо. Есть настройки сервера.
А уж дело админа конфигурировать.
Веселье с таймзонами
imho
...
Рейтинг: 0 / 0
установить дату
    #38149222
leader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКак решаетают эту задачу в Oracle (уже лет 20).
Как решают эту задачу в Java... я не знаю. Наверное любители
ООП - мозохисты. Им нравится плодить сущности где надо и где
не надо. Я не спроста поинтересовался почему-бы не создать
объект "Солнечная Систем" и взять из него объект "Планета Земля"
и взять календарь e.t.c.

ага, кое-кто тут уже два дня плодит свои сущности на форуме по поводу, который не стоит выеденного яйца
...
Рейтинг: 0 / 0
установить дату
    #38149277
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBez,

поэтому как правило те кто уже набил шишки , хранят дату в GMT+0 или вообще в NUMBER, и переводят в локальную таймзону и обратно на клиенте
...
Рейтинг: 0 / 0
установить дату
    #38149366
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманsanBez,

поэтому как правило те кто уже набил шишки , хранят дату в GMT+0 или вообще в NUMBER, и переводят в локальную таймзону и обратно на клиенте

Вот именно. GMT+0 рулит. Только если не ошибаюсь это уже не Date, а Timestamp (не помню точно давно было).
...
Рейтинг: 0 / 0
установить дату
    #38149539
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу. Если поле типа Date, то база запишет дату "как есть". Если Timestamp - с поправкой на разницу времени между клиентом и сервером. Регулярно сталкиваюсь с этим при работе с канадскими серверами. Однозначно Timestamp.

P.S. Исключение может составить случай, когда есть Temporal-поле (автовставка даты базой).
...
Рейтинг: 0 / 0
установить дату
    #38150211
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckУгу. Если поле типа Date, то база запишет дату "как есть".А это, батенька, зависит исключительно от базы.
Тот же пророческий date это, фактически, timestamp(0).
И даже там, где date это именно дата, часовой пояс может и, вообще говоря, должен учитываться.
...
Рейтинг: 0 / 0
установить дату
    #38150215
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaно мы можем еще немного поспорить о
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
date.getTime() + 30*86400

vs

Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.MONTH,1);
c.getTime();

vs

DateUtils.addMonths(date, 1)

Здесь нет предмета для спора. Вообще.
Астрономическое явление, лежащие в основе (григорианского) календаря (солнечный год) никоим боком не связаны с астрономическим явлением, лежащим в основе времени (солнечные сутки).
По этой тривиальной причине операция "добавить месяц" и операция "добавить 30*86400" - неэквивалентны.
Если вы расхождение результатов вас устраивает - вы можете использовать любую из операций.
Но было бы не худо понимать, что операции над календарём и над временем - разные операции.
...
Рейтинг: 0 / 0
установить дату
    #38150216
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учитывая, что мы говорим в разделе Java и в контексте обсуждения этого языка, это имеет не такое большое значение. Хотя, возможно, ты и прав ... но на опыте могу сказать, что SQL Server и MySQL пишут Date именно так - "как есть". Ну, а раз они так делают ...
...
Рейтинг: 0 / 0
установить дату
    #38150221
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonchpasha, ораклоиды над нами будут смеяться. Почему у них нет проблем?Вы как-то выборочно читаете соседние форумы.
Есть вполне пространные ветки, описывающие как бороться изменениями правил перехода на летнее время.
...
Рейтинг: 0 / 0
установить дату
    #38150229
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovПо этой тривиальной причине операция "добавить месяц" и операция "добавить 30*86400" - неэквивалентны.

это все прекрасно, если бы не одно но - уже не помню кто сказал, что плохо понимает, почему нельзя добавить два дня как "два разА по 86400 секунд". теперь ситуация напоминает анекдот про студента, выучившего только билет про блох.
...
Рейтинг: 0 / 0
установить дату
    #38150242
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaэто все прекрасно, если бы не одно но - уже не помню кто сказал, что плохо понимает, почему нельзя добавить два дня как "два разА по 86400 секунд".Я плохо понимаю именно потому, что хорошо понимаю ещё и другие вещи.
...
Рейтинг: 0 / 0
установить дату
    #38150248
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovchpashaэто все прекрасно, если бы не одно но - уже не помню кто сказал, что плохо понимает, почему нельзя добавить два дня как "два разА по 86400 секунд".Я плохо понимаю именно потому, что хорошо понимаю ещё и другие вещи.ну так давай поговорим о том почему плохо добавить два дня как "два разА по 86400 секунд", а не почему блохи не живут на китах.
...
Рейтинг: 0 / 0
установить дату
    #38151809
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaну так давай поговорим о том почему плохо добавить два дня как "два разА по 86400 секунд"Говорите, слушаю.
...
Рейтинг: 0 / 0
установить дату
    #38151836
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovchpashaну так давай поговорим о том почему плохо добавить два дня как "два разА по 86400 секунд"Говорите, слушаю.
write-only код, нуждающийся в комментариях или введении констант вида HOUR_IN_MILLIS, DAY_IN_MILLIS и т.д. этого достаточно?
...
Рейтинг: 0 / 0
установить дату
    #38154806
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashawrite-only код, нуждающийся в комментариях или введении констант вида HOUR_IN_MILLIS, DAY_IN_MILLIS и т.д. этого достаточно?Т.е. Math.PI/Math.E вы не используете из принципиальных соображений?

P.S. Мне всегда казалось, что код вида "... (86400 * 1000) ..." - не нуждается в комментариях.
...
Рейтинг: 0 / 0
установить дату
    #38155545
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovchpashawrite-only код, нуждающийся в комментариях или введении констант вида HOUR_IN_MILLIS, DAY_IN_MILLIS и т.д. этого достаточно?Т.е. Math.PI/Math.E вы не используете из принципиальных соображений?
ты так и будешь задавать глупые вопросы раз в четыре дня?

Basil A. SidorovP.S. Мне всегда казалось, что код вида "... (86400 * 1000) ..." - не нуждается в комментариях.
мне всегда казалось, что подтянутся тридцать раз, это как два пальца. почему норматив в школе был 12 - за пределами моего понимания.
...
Рейтинг: 0 / 0
установить дату
    #38158230
tolyanchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: java
1.
LocalDate date = LocalDate.of(2013, Month.FEBRUARY, 20);



К сожалению, только в восьмерке
...
Рейтинг: 0 / 0
52 сообщений из 52, показаны все 3 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / установить дату
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]