Pegar ano, mês, dia... a partir do System.currentTimeMillis()
6 respostas
G
gabrielost
Olá galera, como que eu faço para pegar a partir do long retornado por System.currentTimeMillis(), os valores de ano, mês, dia, hora, minuto, segundo e milisegundo do correspondente System.currentTimeMillis()?
Por exemplo, eu tenho este long retornado pela função: 1330383371294
A partir deste valor:
Ano: 2012
Mês: 02
Dia: 27
…
Não sei se é possível… Mas tem alguma particularidade para não utilizar o java.util.Date?
G
gabrielost
Na verdade não. Não preciso nem utilizar o System.currentTimeMillis().
Eu preciso de uma maneira para pegar todas essas informações - ano, mês, dia, hora, minuto, segundo, milisegundo - e colocá-las em um único valor do tipo long.
Também quero que a partir de um long gerado desta forma, seja capaz de recuperar cada valor individual - ano, mês, dia, hora, minuto, segundo, milisegundo.
Agradeço qualquer ajuda.
esdras_63
O mais certo então acho que seria você por exemplo pegar a data e hora atual.
Datedata=newDate();
depois você armazena numa string os valores usando o SimpleDateFormat para armazenar no formato que quiser por exemplo:
Acho que não seja necessário um long, depois você usa um substring para retirar os valores necessários.
CharlesAlves
Cara internamente o Date guarda os valores em um long e a partir dele é possivel obter as datas da forma que você que, para obter este valor em long é só utilizar o metodo getTime() mais detalhes em (Api java.util.Date), já para transformar uma string em Date ou um Date em String é só utilizar a classe SimpleDateFormate utilizando os metodos format(Date date) para transformar em String e parse(String date) para transformar em Date, este ultimo lança uma exception caso o formato da String passada esteja incorreto, para o SimpleDateFormat é preciso saber um pouco do seu pattern que é encontrado neste link (Api java.util.SimpleDateFormat)
M
magostta
tente:
//Constructs a default GregorianCalendar using the current time in the default time zone with the default locale.Calendarc=newGregorianCalendar();c.setTimeInMillis(System.currentTimeMillis());System.out.println(c.get(Calendar.DAY_OF_MONTH));System.out.println(c.get(Calendar.MONTH));// 0 = JAN, 1 = FEV ....System.out.println(c.get(Calendar.YEAR));
Se descobrir mais alguma forma usando o currentTimeMillis poste aqui porque eu não sei outra.
abraço.