Bom, como todos sabemos, tanto o flex quanto o rails, utilizam o sistema de data americano. E para podermos utilizar o nosso temos que fazer os seguintes procedimentos:
Formatando data no flex:
1) Primeiramente devemos incluir o componente não visual chamado DateFormatter, para isso você deverá inserir o seguinte código no seu arquivo mxml:
<mx:DateFormatter id="_dfFormatador" formatString="DD/MM/YYYY" />
Note que definimos o novo formato através da propriedade formatString, do componente DateFormatter.
2) Feito isso, agora devemos criar uma pequena função no nosso código actionscript:
[Bindable] public var formatador: DateFormatter = new DateFormatter(); public function formataData(item:Object,column:DataGridColumn):String { formatador.formatString= "DD/MM/YYYY"; return formatador.format(item["data"].toString()); }
Vamos partir do principio que o componente que está mostrando a data que queremos formatar é um datagrid.
3) Criada a função, agora basta invocá-la de nosso componente que está mostrando a data a ser formatada, no nosso caso, iremos chamar a função da nossa datagrid, para isso ela já possui uma propriedade especial chamada labelFunction, já designada para estes fins, veja como fica o código para isso:
<mx:DataGrid id="_dgConsulta" > <mx:columns> <mx:DataGridColumn headerText="Usuário" dataField="nomeuser"/> <mx:DataGridColumn headerText="Id do cliente" dataField="idcli"/> <mx:DataGridColumn headerText="Nome do cliente" dataField="nomecli"/> <mx:DataGridColumn headerText="Data da apresentação" dataField="datareuniao" labelFunction="{formataData}" /> <mx:DataGridColumn visible="false" headerText="Id" dataField="id"/> </mx:columns> </mx:DataGrid>
Se quisessemos nem precisamos especificar o datafield para a coluna da grid em que invocamos a função formataData através da propriedade labelFunction, pois, repare que na própria função já está sendo especificado entre colchetes qual o campo que será formatado.
Formatando data no rails:
Amigos pelo fato do rails ser ainda mais dinamico que o flex, por ter incorporado em suas bibliotecas internas diversas funções que automatizam e facilitam a vida do programador, veja como é muito mais simples:
Basta adicionar o seguinte código:
Time.now.strftime("%Y-%m-%d")
Vamos partir do princípio de que queremos converter a data de nossa action de consulta de reunião, que irá retornar dados para o flex, preenchendo posteriormente nossa datagrid acima criada e codificada para receber estes dados, veja este código como fica dentro da action:
def verificareuniao @atendimentos = Atendimento.find(:all, :conditions => ["datareuniao like ? and status like ?", Time.now.strftime("%Y-%m-%d"), "nao realizada"]) if (@atendimentos.size > 0) renderml => @atendimentos.to_xml else render :text => "registro_nao_encontrado" end end