Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/65: Рейтинг темы: голосов - 65, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812

Datetime.tojavadate() Добавляет Текущее Время

23.09.2013, 11:15. Показов 12480. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Только у меня так или это фича такая? Если считать дату из документа Lotus Notes (в поле тип DATE, только дата без времени), то при преобразовании этой даты в java.util.Date к дате, считанной из поля документа Lotus Notes добавляет текущее время с компьютера, где производится данная операция.

Для получения DateTime использовалось Document.getItemValueDateTimeArray() и Item.getDateTimeValue() - результат одинаков.
На клиенте, на сервере - разные версии Lotus 8.5.2, 8.5.3, 9.0 - везде одно и тоже.

Никто не сталкивался? Как лечить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.09.2013, 11:15
Ответы с готовыми решениями:

Текущее время в input datetime-local
Здравствуйте! Имеется поле input типа datetime-local. На странице в этом поле можно открыть календарь и нажав на точку заполнить поле...

Как получить текущее Текущее Unix epoch время в милисекундах?
Хочу получить через эксель выписку егрюл egrul.nalog.ru Общий порядок такой: 1) Отправляю ПОСТ запрос на адрес https://egrul.nalog.ru/ ...

Создайте командный файл, который спрашивает: «Вы хотите узнать текущее время или текущую дату?» – и в зависимости от ответа выдает на экран текущее вр
Здраствуйте очень сильно нужна помощь в написании батников кто может помогите пожалуйста!!! 1 Создайте командный файл, который...

12
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
23.09.2013, 13:11
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Костыль</div></div><div class="sp-body"><div class="sp-content">

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    /**
* Возвращает значение даты из поля документа Lotus Notes.
*
* @param item поле документа Lotus Notes.
* @return значение даты из поля документа Lotus Notes.
* @see lotus.domino.Item
*/
public static java.util.Date getItemValueDate(Item item) {
java.util.Date date = null;
if (item != null) {
try {
if (item.getType() == Item.DATETIMES) {
// если поле формата "дата" считываем его значение
DateTime datetime = item.getDateTimeValue();
if (datetime != null) {
String ds = datetime.toString();
if (ds.length() <= 10) {
ds = ds.concat(" 00:00:00");
datetime.setLocalTime(ds);
}
date = datetime.toJavaDate();
datetime.recycle();
}
}
} catch (NotesException ne) {
ne.printStackTrace();
}
}
return date;
}
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
23.09.2013, 21:32
ф-ции нотуса в джава писаны соответ. людьми , что еще можно от них ожидать...
я не помню, но вродить можно через бридж передавать дату, вот тока в чем она получается...
др. словами - из LS пихаем дату в java, там уже и сморим

Добавлено: вспомнил - передаем в соответ. с классами (т.е. с полным указанием имени)
хотя тоже кастыль, ибо писать на LS
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
23.09.2013, 21:37
ну и есть http://stackoverflow.com/questions/5050170...te-without-time
0
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
23.09.2013, 22:15
Цитата Сообщение от garrick
Только у меня так или это фича такая? Если считать дату из документа Lotus Notes (в поле тип DATE, только дата без времени), то при преобразовании этой даты в java.util.Date к дате, считанной из поля документа Lotus Notes добавляет текущее время с компьютера, где производится данная операция.

Для получения DateTime использовалось Document.getItemValueDateTimeArray() и Item.getDateTimeValue() - результат одинаков.
На клиенте, на сервере - разные версии Lotus 8.5.2, 8.5.3, 9.0 - везде одно и тоже.

Никто не сталкивался? Как лечить?
это нормальное явление, аналогично, только вместо Date использовал Calendar

.SpoilerTarget">Спойлер: Раскрывающийся Текст


Код (C++):
public static Calendar getCalendarDateOnly(Item item) {
try {
if (item != null && item.getType() == ITEM_TYPE_DATETIME) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(getAsLotusDateOnly(item ).toJavaDate());
return getDateOnly(calendar);
}
} catch (NotesException e) {
LOG.error("{}", e);
}
return null;
}

public static Calendar getDateOnly(Calendar calendar) {
if (calendar == null) {
return null;
}
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
return getDateOnly(year, month, day);
}

public static Calendar getDateOnly(int year, int month, int day) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month - 1);
calendar.set(Calendar.DAY_OF_MONTH, day);
setEmptyTime(calendar);
return calendar;
}

public static void setEmptyTime(Calendar calendar) {
setTime(calendar, 0, 0, 0, 0);
}

public static void setTime(Calendar calendar, int hour, int min, int sec, int millisec) {
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, min);
calendar.set(Calendar.SECOND, sec);
calendar.set(Calendar.MILLISECOND, millisec);
}
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
24.09.2013, 09:01
Цитата Сообщение от lmike
Так проблема не в том, чтобы "отрезать" время, а в том, что в поле в Lotus Notes времени нет, а он подставляет текущее. Мой костыль не отрезает время, а добавляет 0 часов 0 минут, если в лотусовом поле времени нет.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
24.09.2013, 09:12
Для различных манипуляций с датами и календарём есть JodaTime и DateUtils из Apache Commons-Lang. Там много всякого интересного.

А Apache Commons-Lang я вообще в jvm/lib/ext сразу кладу, т.к. постоянно оттуда что-нибудь использую.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
24.09.2013, 11:31
Так проблема не в том, чтобы "отрезать" время, а в том, что в поле в Lotus Notes времени нет, а он подставляет текущее. Мой костыль не отрезает время, а добавляет 0 часов 0 минут, если в лотусовом поле времени нет.
говорим об одном и том же... суть 2-го предложения - не преобразовывать в строку и обратно
с первым все и так ясно - гнать дату из ЛС
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
24.09.2013, 12:04
Цитата Сообщение от lmike
говорим об одном и том же... суть 2-го предложения - не преобразовывать в строку и обратно
с первым все и так ясно - гнать дату из ЛС
Тогда поясни как этим пользоваться. Если я правильно понял твоя функция всегда однозначно отрезает время от лотусовой даты. А как быть есть надо оставить время, когда оно есть, и корректно отобразить дату (dd.MM.yyyy HH:mm:ss) без "левого" времени когда его в лотусовой дате нет? В качестве примера есть даты: "Дата рождения", "Дата выдачи паспорта" и пр. и даты: "Дата/время поступления заявки", "Дата/время окончания обработки заявки". В первом случае наличие времени будет выглядеть странным, во втором обязательно. Для каждого случая писать отдельную функцию считывания даты из Лотуса (со временем и без) и помнить для какого поля какую надо применять? Или я чего-то не понял?
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
24.09.2013, 15:43
"не мой мопед" ты анализируешь дату из поля получаешь что там нет времени, вместо того чтобы проставить 0 - индусы вбивают текущее время
НО так ли это на самом деле - что времени нет в поле ли просто ф-ция работает коряво?
потому что я не знаю способа интеративно указать только дату, в поле, вот взять оттудова - да
скриптом вбить туда - да
может вопрос в некорректности поля, а уж дальше лагает индусский код?
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
24.09.2013, 16:28
поигрался...
индусы....
короткий кастыль<!--shcode--><pre><code class=java>Item item=doc.getFirstItem("dtField");
if (item.getType()== Item.DATETIMES){
DateTime dt=item.getDateTimeValue();
if (dt.getTimeOnly().length()<1) {dt.setLocalTime("00:00:00");}
Date jd=dt.toJavaDate();
System.out.println(jd.toLocaleString());
}[/CODE]
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
25.09.2013, 09:38
Здорово. Кратко и элегантно. Только у меня одно сомнение...
Уверен, что dt.setLocalTime("00:00:00") не затрёт дату, останется только время?
Может лучше dt.setLocalTime(dt.getDateOnly() + " 00:00:00")?
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
25.09.2013, 15:24
да, КМК нерпав
мысль была задать только время, лучше тогда вынести это в java.date по томуже if
и хотелось избежать работы со строками
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.09.2013, 15:24
Помогаю со студенческими работами здесь

Не добавляет значение в поле типа DateTime
БД создана в Access 2010. Есть метод, который должен додавать новую запись в таблицу. private bool AddNewSessionData(int CustomerID,...

Выводить текущее время в определенные позиции консоли во время работы
Портирую консольное приложение. Есть код, который работал после компиляции в BC++ 3.1, после компиляции под MinGW GCC программа не...

Написать скрипт, содержащий текущее время и дату в текстовых полях время и дата. Попробуйте создать изображени
Написать скрипт, содержащий текущее время и дату в текстовых полях время и дата. Попробуйте создать изображение работающих часов

Дано текущее время (H M S), где H - это часы, M - это минуты, а S - секунды. Напи- сать программу, определяющую время спустя 1 секунду
Дано текущее время (H M S), где H - это часы, M - это минуты, а S - секунды. Напи- сать программу, определяющую время спустя 1 секунду.

Текущее время
Как оформить формулу времени, чтобы находмла год например есть год рождения и вывести надо на экран людей старше определёного возраста ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru