Вытянуть только время из даты

Тема в разделе "Lotus - Xpages", создана пользователем xKlonx, 12 янв 2011.

  1. xKlonx

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    Здраствуйте! Есть у меня диалог боксик в котором я выбираю дату и время, потом c помощью
    Код (Text):
    getComponent("inputDate").getValue()
    беру выбранное значение,в итоге получаю дату и время, @date() вытягиваю только дату - одно правильное значение есть.Далее нужно из другого поля вытянуть только время
    Код (Text):
    getComponent("inputTime").getValue()
    - опять же получаю дату и время, с помощью @Time() пытаюсь вытащить время в итоге получаю что-то типа 01.01.1900 7:45, тоесть @Time в Xpages неправильно работает.Народ может кто посоветует как вытянуть только время и чтобы оно имело тип DataTime, Text не подходит.
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.076
    Симпатии:
    300
    берем стринг и rightback до пробела
    либо получаем NotesDateTime и из него дергаем время
     
  3. xKlonx

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    lmike
    стринговое время получить не проблема,а вот конвертнуть его пока непонятно как в дататайм
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.076
    Симпатии:
    300
    если нужно получать именно тип дата, но содержащее тайм часть NotesDatetime.SetAnyData
    тока не понятно - что потом с этим делать буите :what?:?
    цель какова - получения таймовой части?
    если операции сравнения - надоть сёрамно юзать NotesDatetime
     
  5. xKlonx

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    3 поля типа дататайм, в одно ввожу дату,в другое время, а третье компутед которое берет значение из первого поля и второго.Так вот в первом поле получаю дату типа дататайм, во втором же нужно получит только время, но оказалось что это не так просто ибо получаю его в текстовом виде,а нужно дататайм, конверту пока не поддается. Вообще то что нужно было я решил, пришлось убрать формулу в третьем компутед поле и передавать 2 значения сразу в третье поле, но интерес остался каким же образом получить время в xpages и передать в необходимом типе.
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.076
    Симпатии:
    300
    не понятен смысл вашего понятия "время" ибо - это д.б. число либо объект отражающий время в общем смысле
    для того чтобы:
    -сравнивать
    -производить увеличение/уменьшение
    дык ежели получить тайм - это и будет величина приведённая к 0-вой дате
    и него нормально будет вывести часы/минуты/секунды/строку

    вам, из вышеперечисленного - что нужно-то было?
     
  7. xKlonx

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    передать в толстый клиент тайм(время 8:40:00) с типом дататайм, тривиальная задача но с xpages в итоге передавал только в текстовом виде.
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.076
    Симпатии:
    300
    ну тогда и передавайте notesdatetime с setanydata (но это, фактически, будет 1900 год)
     
  9. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Если на @-формулах, то для обычного Notes я бы
    из первого поля получил @Year, @Month, @Day
    из второго @Hour, @Minute, @Second
    слепил бы в кучу: @Time(year; month; day; hour; minute; second).
    На LS есть аналоги.
     
  10. xKlonx

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    VladSh
    Ну впринципе я так и сделал, на собаках только в икспейджах
    Код (Text):
    var field1 = getComponent("inputDate").getValue()
    var field2 = getComponent("inputTime").getValue()

    DocSource.replaceItemValue("field3", @Date( @Year(field1),@Month(field1),@Day(field1),@Hour(field2),@Minute(field2),@Second(field2)))
    DocSource.save()
     
  11. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.076
    Симпатии:
    300
    ведь нет отдельного формата time, есть общий datetime
    -взять первое - установить anydate, тоже сделать со вторым полем
    -посчитать разницу
    -прибавить разницу к первому полю

    Добавлено: вот так (в обычных собаках) я делаю:
    Добавлено: и хэПагес с датасорсом этой формы - работает без напильника
     
Загрузка...
Похожие Темы - Вытянуть только время
  1. astana2030
    Ответов:
    1
    Просмотров:
    997
  2. wowa
    Ответов:
    9
    Просмотров:
    4.387
  3. fedotxxl
    Ответов:
    4
    Просмотров:
    2.924
  4. Dragon108
    Ответов:
    2
    Просмотров:
    527
  5. slavkan777
    Ответов:
    0
    Просмотров:
    440

Поделиться этой страницей