И вот новые мелочи жизни:
вывожу на VF странице поле записи Типа ВремяДата через apex:outputText.
и вроде все как обычно.
Но нет, не расслабляться: время вывелось в GMT, хотя тоже поле в станд дитейл пейдж выводится в час поясе юзера (то есть правильно).
ну как не хочется создавать создавать объект-обертку в контроллере для этой записи, где и переформатировать это поле.
Это можно как-то решить в VF?
И вот новые мелочи жизни: вывожу на VF странице поле записи Типа ВремяДата через apex:outputText. и вроде все как обычно. Но нет, не расслабляться: время вывелось в GMT, хотя тоже поле в станд дитейл пейдж выводится в час поясе юзера (то есть правильно). ну как не хочется создавать создавать объект-обертку в контроллере для этой записи, где и переформатировать это поле. Это можно как-то решить в VF?
Видимо никак, в standard details page используется <apex:outputField> который всё сам делает. Как вариант решения - в контроллере создать какой нибудь стандартный объект (Event, Opportunity или др, главное чтобы был филд типа DateTime) и выводить его на VF через <apex:outputField>. Или создать компонент который будет инкапсулировать эту логику, а параметром ему передавать свой DateTime property.
Видимо никак, в standard details page используется <apex:outputField> который всё сам делает. Как вариант решения - в контроллере создать какой нибудь стандартный объект (Event, Opportunity или др, главное чтобы был филд типа DateTime) и выводить его на VF через <apex:outputField>. Или создать компонент который будет инкапсулировать эту логику, а параметром ему передавать свой DateTime property.
А действительно, чего это я туплю?! Поставил <apex:outputField> - и порядок.
Спасибо
[quote="dlisovsky"]Видимо никак, в standard details page используется <apex:outputField> который всё сам делает. Как вариант решения - в контроллере создать какой нибудь стандартный объект (Event, Opportunity или др, главное чтобы был филд типа DateTime) и выводить его на VF через <apex:outputField>. Или создать компонент который будет инкапсулировать эту логику, а параметром ему передавать свой DateTime field.[/quote] А действительно, чего это я туплю?! Поставил <apex:outputField> - и порядок. Спасибо
А можно вот так:
<apex:outputText value="{0,date,dd'/'MM'/'yyyy}">
<apex:param value="{!u.ActivityDate}" />
</apex:outputText>
А можно вот так: [code] <apex:outputText value="{0,date,dd'/'MM'/'yyyy}"> <apex:param value="{!u.ActivityDate}" /> </apex:outputText> [/code]
AkiraDio, хороший пример.
Хочу только отметить разницу между apex:outputField и outputText с форматированием:
- в случае apex:outputField дата выводится в часовом поясе пользователя, который указан в настройках профиля.
- в случае outputText дата выводится в GMT+0.
Пока склоняемся к тому чтобы уговорить заказчика использовать стандартный функционал SF и выводить дату так с помощью apex:outputField так, как пользователь указывает у себя в настройках. Это правильный подход. Но встречаются и такие заказчики, которые хотят "чтобы было так как на макете!" :)
AkiraDio, хороший пример. Хочу только отметить разницу между apex:outputField и outputText с форматированием: - в случае apex:outputField дата выводится в часовом поясе пользователя, который указан в настройках профиля. - в случае outputText дата выводится в GMT+0. Пока склоняемся к тому чтобы уговорить заказчика использовать стандартный функционал SF и выводить дату так с помощью apex:outputField так, как пользователь указывает у себя в настройках. Это правильный подход. Но встречаются и такие заказчики, которые хотят "чтобы было так как на макете!" :)
Моя удивляться!
Даже при использовании apex:outputText естькакие-то варианты (хоть проблему с приведением даты к часовому поясу, как видно из сообщения Дмитрия, и не решают). Собственно если эта схема apex:outputText--apex:param работат, для нее вероятно есть еще и другие ситуации, когда она может здорово пригодится.
[quote="AkiraDio"]А можно вот так: [code] <apex:outputText value="{0,date,dd'/'MM'/'yyyy}"> <apex:param value="{!u.ActivityDate}" /> </apex:outputText> [/code][/quote] Моя удивляться! Даже при использовании apex:outputText естькакие-то варианты (хоть проблему с приведением даты к часовому поясу, как видно из сообщения Дмитрия, и не решают). Собственно если эта схема [i]apex:outputText--apex:param[/i] работат, для нее вероятно есть еще и другие ситуации, когда она может здорово пригодится.
Есть ещё такой вариант http://www.interactiveties.com/b_locale_datetime.php.
Мап форматов + outputText
Есть ещё такой вариант [url]http://www.interactiveties.com/b_locale_datetime.php[/url]. Мап форматов + outputText