2010-07-15 5 views
0

я пытаюсь получить текущую дату через UNIX время, как это:Получить текущую дату, SQLite андроид

long unixTime = System.currentTimeMillis()/1000; 

    Date d = new Date(unixTime); 
    StringBuffer tmp = new StringBuffer(); 
    tmp.append(d.getYear()); 
    tmp.append(" - "); 
    tmp.append(d.getMonth()); 
    tmp.append(" - "); 
    tmp.append(d.getDay());` 

Когда я позже распечатать это через tmp.getString() я получаю следующую дату 70 - 0 - 4, есть что-то им не хватает?

// Thx заранее

ответ

2

Те методы, которые вы используете, устарели. Лучше использовать GregorianCalendar класс:

GregorianCalendar gregorianCalendar=new GregorianCalendar();    
StringBuffer tmp = new StringBuffer(); 
tmp.append(gregorianCalendar.get(GregorianCalendar.YEAR)); 
tmp.append(" - "); 
tmp.append(gregorianCalendar.get(GregorianCalendar.DAY_OF_MONTH)); 
tmp.append(" - "); 
tmp.append(gregorianCalendar.get(GregorianCalendar.MONTH)); 
+0

ТНХ, но у меня есть небольшая проблема, GregorianCalendar.MONTH дает мне неправильное значение на месяц, есть ли быстрое решение этого? – Krewie

+0

Я просто увеличил его на 1, но я не знаю, если это хорошее исправление tbh, может быть, что GregorianCalendar.MONTH считает январь как 0? , – Krewie

+0

Да ... это результат с нулевой индексацией. – Cristian

0

Дата занимает миллисекунды с начала эпохи. Поэтому просто не делите unixTime на 1000.

Смежные вопросы