Documentum DQL: как я могу получить часовой пояс UTC для столбцов Date для анализа в.NET?

Documentum (DQL через DFC) всегда возвращает столбцы результата Date в виде строки, отформатированной следующим образом:

Wed Oct 19 16:01:59 PDT 2011

... и.NET DateTime.Parse функция душит это - особенно PDT Часовой пояс (TZ впредь) часть строк - насколько я могу судить, нет никакого понятия этих сокращений TZ в разборе DateTime. Конечно, это поймет +8:00 но нет PDT,

TZ основан на TZ сервера содержимого, который не всегда может быть тем же TZ, что и потребитель веб-службы (мы выдаем результаты DQL через веб-службу).

Так что... если я смогу заставить Documentum ВСЕГДА указывать время UTC в этих строках, я могу довольно легко выполнить преобразование на клиенте и всегда иметь правильный часовой пояс.

Можно ли это сделать? Существует ли параметр Documentum, чтобы сервер содержимого всегда возвращал время по Гринвичу?

Альтернативные решения?

2 ответа

Формат даты см. dfc.date_format = настройка, которую вы можете определить в своем dfc.properties файл.

Выдержка из dfcfull.properties для деталей:

формат даты может быть указан с использованием синтаксиса класса Java SimpleDateFormat

Какая версия Content Server у вас есть? В D6.x даты хранятся в UTC и преобразуются в локальную TZ клиента клиентскими приложениями Documentum. Для получения дополнительной информации см.: https://community.emc.com/message/545879

Для DQL есть функция datetostring, и ее можно использовать так

select datetostring(r_creation_date, 'dd/mm/yyyy') from dm_document

он вернется 28.12.2014

или со временем, как это

select datetostring(r_creation_date, 'dd/mm/yyyy hh:mi:ss') from dm_document

вернется 28.10.2014 23:58:35

для DFC не рекомендуется использовать getString для дат. Рекомендуется использовать метод getTime. Он вернет объект IDfTime, который можно преобразовать в стандартный объект Date.

Другие вопросы по тегам