Debugando percebi que os valores de dta (todos os campos) permanecem inalterados após a chamada a setTimeInMillis.
Assim meu campo lblUltimoPeriodo fica contendo [quote]Janeiro/1970[/quote]. Alguem sabe porque? Preciso que ele atualize , o valor passado como parâmetro é um long válido que representa [quote]31/12/2002 00:00:00[/quote]
Obrigado pelo código, mas meu problema é que preciso setar o Calendar (dta) com o horário que tenho em milisegundos (vindos de um banco de dados, devidamente convertidos para long). O valor long que estou passando é a representação correta da data, mas Calendar não está atualizando seus campos.
Voce tem uma quantidade de milisegundos no banco, recupera isso e quer converter pra data? É isso?
Voce nao tem que ter uma data como base? Ex: 1900 + seus milisegundos = 22/10/2002 12:00:00?
É isso que voce quer fazer?
Pelo que voce fez, o setTimeInMillis ta formatando os mes para Janeiro e nao para 01.
Nao estou entendendo oq voce quer fazer, da uma luz ae e solucionamos.
Ele recebe um long representando os milisegundos passados desde Epoch que é definido como January 1, 1970, 00:00:00 GMT … isso é padrão em *nix, é assim que o SO manipula datas e no caso do Oracle é assim que ele armazena.
Ao setar o valor com a função setTimeInMillis() eu esperava que ele assumisse essa data (31/12/2002 00:00:00) para então eu fazer as devidas manipulações (no exemplo quero exibir o Mês/Ano).
Entendeu?
Não estou conseguindo ver porque ele não atualiza, essa função infelizmente não faz um throw nem retorna valor.