Регистрация  |  Вход

Показать time из datetime field в локали пользователя

Привет всем.

Простейшая задача вызвала у меня непонятные сложности.

Есть объект, в нем поле DateTime. Надо на Visualforce странице показать только время (time).
Но показать не просто а в локали пользователя.

Чтобы вывести дату в локали пользователя обычно использую apex:outputField
Чтобы отформатировать дату везде предлагают вот такой пример:

<apex:outputText value="The formatted time right now is: 
{0,date,yyyy.MM.dd G 'at' HH:mm:ss z}">
<apex:param value="{!NOW()}" />
</apex:outputText>

НО проблема в том что тогда дата выводится в GMT, а не в локали пользователя потому что тут apex:outputText

Скрестить их вместе тоже не получается:
value for <apex:outputField> is not a dynamic binding!

Подскажите просто и элегантное решение.

Привет всем.

Простейшая задача вызвала у меня непонятные сложности.

Есть объект, в нем поле DateTime. Надо на Visualforce странице показать только время (time).
Но показать не просто а в локали пользователя.

Чтобы вывести дату в локали пользователя обычно использую apex:outputField
Чтобы отформатировать дату везде предлагают вот такой пример:
[code]
<apex:outputText value="The formatted time right now is: 
	{0,date,yyyy.MM.dd G 'at' HH:mm:ss z}">
	<apex:param value="{!NOW()}" />
</apex:outputText>
[/code]
НО проблема в том что тогда дата выводится в GMT, а не в локали пользователя потому что тут apex:outputText

Скрестить их вместе тоже не получается:
value for <apex:outputField> is not a dynamic binding! 

Подскажите просто и элегантное решение.

Нашел вот такое решение:
inputField DateTime format
здесь предлагают получать время из datetime field еще в контроллере и передавать на страницу в виде string

public class myObjectWrapper{
public String formatDate{get; set;}
public MyObject__c obj{get; set;}
public myObjectWrapper(MyObject__c obj){
this.obj = obj;
formatDate = obj.MyDate__c.format("yyyy-MM-dd HH:mm:ss");
}
}

Попробовал, вроде работает.

Нашел вот такое решение:
[url=https://developer.salesforce.com/forums/ForumsMain?id=906F000000099ElIAI]inputField DateTime format[/url]
здесь предлагают получать время из datetime field еще в контроллере и передавать на страницу в виде string

[code]
public class myObjectWrapper{
    public String formatDate{get; set;}
    public MyObject__c obj{get; set;}
    public myObjectWrapper(MyObject__c obj){
        this.obj = obj;
        formatDate = obj.MyDate__c.format("yyyy-MM-dd HH:mm:ss");
    }
}
[/code]
Попробовал, вроде работает.