AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.01.2021, 11:20   #1  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
CreatedDateTime Акс2012
Вижу в стандартной Акс2012 такой код:
X++:
    createdTime = DateTimeUtil::getDifference( DateTimeUtil::applyTimeZoneOffset(DateTimeUtil::utcNow(), DateTimeUtil::getUserPreferredTimeZone()),
                                        DateTimeUtil::applyTimeZoneOffset(workflowTrackingTable.CreatedDateTime, DateTimeUtil::getUserPreferredTimeZone()));
Вопрос. А что нельзя разве проще писать вычисляя разницу? Без перевода зоны.
У нас разве CreatedDateTime может быть не совпадать с зоной DateTimeUtil::utcNow() ?
Старый 20.01.2021, 18:25   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Здесь либо была перестраховка, либо Copy+Paste. Оба же значения "сдвигают" на одинаковое значение. Т.е. разница не изменится от того, был этот сдвиг или нет

Если речь идет о методе

\Data Dictionary\Tables\WorkflowTrackingStatusTable\Methods\getElapsedTime

то там дальше надо отобразить в формате Дней/Часов/Минут. Вот, скорее всего, автор кода и подумал, что надо брать с учетом часовых поясов Хотя реально действительно нет смысла

Впрочем, по методам Workflow полно кода с отображением времени создания. Так что, и Copy+Paste вполне себе мог быть...
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Perc (1), S.Kuskov (2).
Старый 21.01.2021, 07:12   #3  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
Пытаюсь дальше понять функции DateTimeUtil
Судя по наличию функции DateTimeUtil::getOriginatingTimeZone(d), предполагаю что тип utcDateTime хранит в себе timezone. Это так? Но сомневаюсь в этом.
Как тогда добиться чтобы DateTimeUtil::getOriginatingTimeZone(d) возвращал что либо отличное от (GMT) Касабланка, Монровия, Рейкьявик? У меня не получилось ни изменением ни applyTimeZoneOffset. И в чем ее смысл тогда?
Старый 21.01.2021, 08:22   #4  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Например, вот так

X++:
    utcDateTime           transDateTime = DateTimeUtil::newDateTime(today(), timeNow(), Timezone::GMTMINUS0100AZORES);
    
    info(strFmt("%1", DateTimeUtil::getOriginatingTimeZone(transDateTime)));
__________________
Sergey Nefedov
Старый 21.01.2021, 10:47   #5  
Pandasama is offline
Pandasama
Участник
 
457 / 134 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Цитата:
Сообщение от Perc Посмотреть сообщение
Судя по наличию функции DateTimeUtil::getOriginatingTimeZone(d), предполагаю что тип utcDateTime хранит в себе timezone. Это так? Но сомневаюсь в этом.
https://docs.microsoft.com/en-us/dyn...er/utcdatetime
The utcdatetime data type is intrinsic to X++. It combines date and timeOfDay types into one type. A utcdatetime variable also holds time zone information, though this information is not accessible to X++ code.
За это сообщение автора поблагодарили: Perc (1).
Старый 21.01.2021, 20:32   #6  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
Цитата:
Сообщение от Pandasama Посмотреть сообщение
https://docs.microsoft.com/en-us/dyn...er/utcdatetime
The utcdatetime data type is intrinsic to X++. It combines date and timeOfDay types into one type. A utcdatetime variable also holds time zone information, though this information is not accessible to X++ code.
Ага смотрел это место уже, но получается не достаточно внимательно)
Стало яснее после того как сделал в таблице поле utcDateTime и посмотрел в таблицу SQL. Оказывается хитрецы добавили 2 поля datetime и int под timezone..
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Различия Update в Акс4 и Акс2012 Perc DAX: Программирование 3 21.10.2019 15:19
AIF Pipeline компонент для добавления системных полей (CreatedBy, CreatedDateTime ...) sgt.Pepper DAX: Программирование 0 13.01.2016 12:21
ax-erp: Modifying CreatedDateTime Blog bot DAX Blogs 0 09.10.2012 17:11
CreatedDateTime vs trigger Wamr DAX: Программирование 0 19.03.2012 18:29
CreatedDateTime и ModifiedDateTime (Ax2009SP1) Poleax DAX: Программирование 11 12.07.2011 15:43

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:19.