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.